我使用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:
我必须提到我从另一个线程调用它。但正如你所看到的,我正在新线程中创建上下文,我认为这不重要。
答案 0 :(得分:0)
您可以使用此代码而不是context.Games.Remove(item);
context.DeleteObject(item);