引用多个表的表。保存时出现错误“引用完整性约束违反”。

时间:2018-08-06 01:17:24

标签: c# sql-server entity-framework-6

我的表格结构如下。

表1 密钥,文档密钥名称

Table2 密钥,文档密钥名称

Table3 密钥,DocKey,名称

Table4 键,DocKey, T1Key,T2Key,T3Key,名称,值

我已经通过以下方式定义了外键关系。我想做的是使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 });

我能够添加对象,但是当我尝试保存时,出现以下错误。尝试搜索类似的错误,但无法找出需要更改的内容。请协助。

保存

 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;
        }
  

违反参照完整性约束。从属角色有   具有不同值的多个主体。

0 个答案:

没有答案