我的表格结构如下。
表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;
}
违反参照完整性约束。从属角色有 具有不同值的多个主体。