我有以下代码从数据库中删除用户:
var user = from u in db.Users
where u.Username == username
select u;
if (user.Count() > 0)
{
db.DeleteObject(user.First());
db.SaveChanges();
}
但我有这样的例外:
at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager sta teManager, IEntityAdapter adapter)
at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
at System.Data.Objects.ObjectContext.SaveChanges(Boolean acceptChangesDuringSave)
at System.Data.Objects.ObjectContext.SaveChanges()
at MyCompany.SystemSoftware.DQMgr.User.DeleteUser(String username) in C:\workspace\SystemSoftware\SystemSoftware\src\dqm\User.cs:line 479
Users
表由少数其他表引用。它可能是由外键约束引起的?
答案 0 :(得分:1)
解决这个问题的最简单方法是将您的外键约束设置为Dropcade上的Cascade,但这是因为您准备丢失引用的记录,当然。
否则,您可以尝试在用户对象上设置代表null
关系的属性,然后删除用户。