我使用EntityFramework开发了一个用于数据访问的Windows服务,它运行良好。现在我正在尝试将其迁移到控制台应用程序中,但在使用“Database.SqlQuery<>”时崩溃了。它不会给出任何错误或异常,它只是关闭控制台窗口并停止执行。
这是我正在使用的代码:
public async static Task<IList<SqlData>> GetDbInfo()
{
var context = new dbEntities();
IList<SqlData> data = await context.Database.SqlQuery<SqlData>(ConfigurationManager.AppSettings[Properties.Resources.Select]).ToListAsync();
return data;
}
它在Windows服务中运行得很好,我没有改变任何东西。有谁知道会发生什么?
更新
我要求的完整代码:
static void Main(string[] args)
{
logger.Info("Init of Main");
WriteFile();
logger.Info("End of Main");
}
protected static async void WriteFile()
{
logger.Info("Init of WriteFile");
StreamWriter file = null;
string path = TxtUtils.GenerateOutputFilePath();
IList<SqlData> data;
int affectedRows = 0;
try
{
data = await DataAccess.GetDbInfo();
if (data != null && data.Count > 0)
{
...
}
}
catch (Exception ex)
{
logger.Error("Fail in process", ex);
}
}
我读了这个答案,正如@PalleDue所说:
这就是:
https://blogs.msdn.microsoft.com/mazhou/2017/05/30/c-7-series-part-2-async-main/
我已经尝试过它所说的内容:
public static asyn Task Main(string[] args)
{
await ...
}
但Visual Studio表示它不是正确的输入功能。