C# 引用多个表的表。保存时出错";引用完整性约束冲突。”;
我有以下结构的表 表1键,DocKey,名称 表2键,DocKey,名称 表3键,DocKey,名称 表4Key,DocKey,T1Key,T2Key,T3Key,Name,Value 我用以下方式定义了外键关系。我想做的是,使T4依赖于T1、T2和T3,并具有导航属性C# 引用多个表的表。保存时出错";引用完整性约束冲突。”;,c#,sql-server,entity-framework-6,C#,Sql Server,Entity Framework 6,我有以下结构的表 表1键,DocKey,名称 表2键,DocKey,名称 表3键,DocKey,名称 表4Key,DocKey,T1Key,T2Key,T3Key,Name,Value 我用以下方式定义了外键关系。我想做的是,使T4依赖于T1、T2和T3,并具有导航属性 modelBuilder.Entity<Table4>() .HasRequired<Table3>(d => d.Table3Nav)
modelBuilder.Entity<Table4>()
.HasRequired<Table3>(d => d.Table3Nav)
.WithMany()
.HasForeignKey(k => new { k.DocKey, k.T3Key });
modelBuilder.Entity<Table4>()
.HasRequired<Table2>(d => d.Table2Nav)
.WithMany()
.HasForeignKey(k => new { k.DocKey, k.T2Key });
modelBuilder.Entity<Table4>()
.HasRequired<Table1>(d => d.Table1Nav)
.WithMany()
.HasForeignKey(k => new { k.DocKey, k.T1Key });
引用完整性约束冲突。一个从属角色
具有不同值的多个主体
尝试为所有
modelBuilder.Entity
定义设置WillCascadeOnDelete(false)
。哪个代码试图添加(并保存)新对象?@TetsuyaYamamoto补充说,但仍然给出错误。我已经更新了问题以包含保存。有什么需要做的吗?在将对象发送到save函数之前,我正在业务逻辑中添加和删除实体。
public int SaveDoc(Doc Document)
{
if (Document.Key == 0)
data.Docs.Add(Document);
else
{
var currDoc = data.Docs.Where(x => x.Key == Document.Key).FirstOrDefault();
data.Entry(currDoc).CurrentValues.SetValues(Document);
}
data.SaveChanges();
return Document.Key;
}