C# 引用多个表的表。保存时出错";引用完整性约束冲突。”;

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)

我有以下结构的表

表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)
                     .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;
        }