我正在使用Entity Framework执行
以下是相关的代码:
Remove()
操作。当我尝试运行SaveChanges()
时,提示我无法将NULL插入到不允许的列中。这对我来说很奇怪,因为我没有进行任何INSERT
操作,并且我检查了30个现有条目中的每一个,发现它不应该尝试在该列中保存空值。以下是相关的代码:
var user = db.AspNetUsers.FirstOrDefault(u => u.Id == userId);
if (user != null)
{
var itemsToRemove = user.ItemXrefs.Where(i => !itemIDs.Contains(i.ItemID)).ToList();
foreach (var xref in itemsToRemove)
{
user.ItemXrefs.Remove(xref);
}
db.SaveChanges();
//...
}
user.ItemXfefs
并从user.Items
中删除结果,这有点令人困惑。难道你不应该从同一个集合中删除项目吗?或者至少验证user.Items
是否包含你要删除的项目? - Rufus LSaveChanges()
运行之前表中并没有任何 NULL 值。 - muttley91