在实体框架中更新数据库中的所有记录时出现异常

本文关键字:记录 异常 框架 实体 更新 数据库 | 更新日期: 2023-09-27 18:22:21

我在下面的代码片段中遇到了实体框架的这个奇怪问题

var userWorkItems = (from uw in context.UserWorkItems
                     join u in context.DNN_Users on uw.UserID equals u.UserID
                     where u.Username.StartsWith(fromUserName)
                     select uw).ToList();
if (userWorkItems != null)
{
    for (int i = 0; i < userWorkItems.Count; i++)
    {
        userWorkItems[i].UserID = toUserID.Value;
    }
    context.SubmitChanges();
}

当发生异常时,使用fromUserNameUserid更新整个表。

是什么样的异常导致了这种奇怪的行为,尽管现在已经在context.SubmitChanges(); 中添加了一个try-catch

还是我们得出了错误的结论?

在实体框架中更新数据库中的所有记录时出现异常

异常发生在哪里,什么是异常?我相信你的问题可能是fromUserName。如果它是一个空字符串,它将返回每一个UserWorkItem。如果抛出了一个错误,而您不希望它在上下文中进行部分保存,请像这样将其封装在TransactionScope

using(var scope = new TransactionScope()){
    //Do whatever
    scope.Complete();
}