我有代码第一个实体框架。
当我试图删除表中有外键到其他表的行我得到一个异常。异常处理后,当我尝试加载我的数据再次证明我试图删除所选项目的导航键是成为空试图删除后导航键丢失
为什么出现这种情况,如何解决它。
删除过程是如此的简单:
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语句冲突与外键约束 “FK_person_profile
这是我班的一个示例。
是东西属性是一个导航键。 在第一选择东西有价值 但在第二次选择里面终于阻止它成为空
修复了删除问题之后,现在我在将对象添加到数据库后遇到同样的问题。 并且重装功能不起作用。
有什么建议吗?
您可以发布您的代码?你的删除函数和抛出错误的方法会很有帮助! –
@MarkOreta:更新问题 – Raika
你的错误是因为有一个**必需的** FK关系,它没有设置为级联删除(它看起来像你有一个配置文件对象)。您需要将关系设为可选,删除配置文件或启用级联删除。 –