LINQ to Entities删除异常

时间:2010-04-15 19:21:07

标签: c# linq-to-entities

我有以下代码从数据库中删除用户:

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表由少数其他表引用。它可能是由外键约束引起的?

1 个答案:

答案 0 :(得分:1)

解决这个问题的最简单方法是将您的外键约束设置为Dropcade上的Cascade,但这是因为您准备丢失引用的记录,当然。

否则,您可以尝试在用户对象上设置代表null关系的属性,然后删除用户。