我在Entity Framework中遇到了这个奇怪的问题,下面是代码片段
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();
}
当发生异常时,整个表格会使用Userid
的{{1}}进行更新。
什么样的异常会导致这种奇怪的行为,尽管现在已经向fromUserName
或者我们做出了错误的结论?
答案 0 :(得分:1)
异常发生在哪里,异常是什么?我相信您的问题可能是fromUserName
。如果它是一个空字符串,它将返回每一个UserWorkItem
。如果抛出错误并且您不希望它对上下文进行部分保存,请将其包装在TransactionScope
中。
using(var scope = new TransactionScope()){
//Do whatever
scope.Complete();
}