C# net核心linq到实体异步调用终止程序
在.NETCore中,我有一个查询,希望得到异步的结果,但程序只是简单地终止而没有任何错误 代码是这样的:C# net核心linq到实体异步调用终止程序,c#,linq-to-entities,.net-core,C#,Linq To Entities,.net Core,在.NETCore中,我有一个查询,希望得到异步的结果,但程序只是简单地终止而没有任何错误 代码是这样的: var query = from row in context.MyTable where something == row.something select row; var list = await query.ToListAsync(); 如果执行FirstAsync,程序也会终止,但如果执行First()或ToList(),程序
var query = from row in context.MyTable
where something == row.something
select row;
var list = await query.ToListAsync();
如果执行FirstAsync,程序也会终止,但如果执行First()或ToList(),程序运行良好
我有很多其他的问题,表现良好,我认为终止是相当残酷的,但我找不到任何其他人有过这样的经历
我可以试着解决它吗?(目前我只使用ToList)因为主功能始终是同步的,所以您的顶级任务应该同步等待:
void Main()
{
var serviceTask = StartServiceAsync();
// you cannot do await serviceTask, but only
serviceTask.Wait();
}
因此,您的服务可能不会失败-它只是在主功能结束并且应用程序关闭时终止。没有例外?是否打开异常设置?如何打开?如果我从控制台运行该程序,单元测试将返回成功,因为它在未到达我的断言的情况下终止,并且当从Web服务调用时,该服务将退出。订阅UnhandledException和UnobservedTaskeException您的控制台程序很有可能存在,因为它到达主方法的末尾。如果您将所描述的内容放在
异步任务
方法中,然后在控制台应用程序的主应用程序中运行该方法,而不等待它完成,则会发生这种情况。