控制台应用程序中EntityFramework的问题:崩溃但没有错误

时间:2017-06-23 11:02:54

标签: c# windows console

我使用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所说:

async at console app in C#?

这就是:

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表示它不是正确的输入功能。

0 个答案:

没有答案