C# net核心linq到实体异步调用终止程序

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(),程序

在.NETCore中,我有一个查询,希望得到异步的结果,但程序只是简单地终止而没有任何错误

代码是这样的:

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您的控制台程序很有可能存在,因为它到达主方法的末尾。如果您将所描述的内容放在
异步任务
方法中,然后在控制台应用程序的主应用程序中运行该方法,而不等待它完成,则会发生这种情况。