调用savechanges

时间:2017-04-30 20:41:20

标签: c# entity-framework

我使用Entity Framework获得以下代码:

try
{
    using (GameDatabaseEntities context = new GameDatabaseEntities())
    {
        IQueryable<Game> games = context.Games.Where(a => a.isValidGame == false);

        foreach (Game item in games)
        {
            context.Games.Remove(item);
        }

        context.SaveChanges();
    }
}
catch (Exception ex)
{
    ErrorHandler.ExceptionHandling("Error in `DeleteFalseFlagsDataAccess` method", ex);
}

我有时会收到以下错误:

  

更新条目时发生错误。

     

栈跟踪
  在System.Data.Entity.Internal.InternalContext.SaveChanges()
  在System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
  在System.Data.Entity.DbContext.SaveChanges()
  在C:\ Users \ Media Depp \ documents \ visual studio 2017 \ Projects \ Games \ Game \ Game中的Game.DataAccessLayer.DeleteFalseFlagsDataAccess()

我不知道原因,我应该在context.SaveChanges()内拨打foreach吗?谢谢你的帮助。我应该提一下,我已阅读here,根据第一个答案,没有区别,我的代码没有错。我感到困惑,因为我没有在网上找到答案。我还必须提到这一点,我在调用SaveChanges实例方法的行中收到错误。

<小时/> 编辑:
我收到以下内心消息:

  

消息=&#34;执行超时已过期。操作完成之前经过的超时时间或服务器没有响应。\ r \ n语句已终止。&#34;


编辑2:
我必须提到我从另一个线程调用它。但正如你所看到的,我正在新线程中创建上下文,我认为这不重要。

1 个答案:

答案 0 :(得分:0)

您可以使用此代码而不是context.Games.Remove(item);

context.DeleteObject(item);