我有代码优先实体框架。
当我尝试从具有其他表的外键的表中删除行时,我得到一个异常。在我尝试再次加载数据时处理异常后,我尝试删除的选定项目的导航键变为空
为什么会发生这种情况,我该如何解决。
删除过程非常简单:
public class Person
{
public int ID {get;set;}
public string Name {get;set;}
public Something Something {get;set;}
public ICollection<Profile> Profile {get;set;}
}
try
{
var p = en.Person.First(t => t.ID == 14);
//p.Something here is not null;
en.Remove(p)
en.SaveChanges(); // I'm get an exception here
}
catch { /*error handling */}
finally
{
var p = en.Person.First(t => t.ID == 14);
//but p.Something here is null;
}
但在en.SaveChange()我得到一个例外。
DELETE 语句与 FOREIGN KEY 约束“FK_person_profile
这是我班的一个样本。
SomeThing属性是一个导航键。首先选择Something have value。但在第二个选择里面最终阻止它变为空。
现在修复删除问题后,我在将对象添加到数据库后遇到了同样的问题。并且重新加载功能没有帮助。
有什么建议吗?