EF EntityTypeConfiguration WithMany使用复合键

时间:2017-08-17 08:23:19

标签: entity-framework

我正在使用一个非常古老的数据库设计,它有一个旧的EF EDMX模型和2个表。

Table 1:
Id
NodeId
ProviderId
StatusId
Date

Table 2:
Id
NodeId
ProviderId
StatusId
Date
UserId
Notes

在旧的edmx中,这有一个表1类,其属性具有表2的集合。

外键是来自两个表的NodeId / ProviderId的组合。在表1中,它是唯一的,在表2中它是重复的。

我试图在EF CodeFirst中重新执行此操作,但我无法弄清楚这一情况。

如何在表1的EntityTypeConfiguration映射中映射?

当我绘制历史表时,我得到:

enter image description here

但是没有办法定义外键......

如果我尝试配置配置,请执行以下操作:

表1

        HasMany(x => x.History)
            .WithRequired(x => x.ParentStatus)
            .HasForeignKey(x => new
            {
                x.NodeId,
                x.ProviderId
            });

和/或(尝试两者兼而有之)

        HasRequired(x => x.ParentStatus)
        .WithMany(x => x.History)
        .HasForeignKey(x => new
        {
            x.NodeId,
            x.ProviderId
        });

两者都失败了:

在模型生成期间检测到一个或多个验证错误:

  

ApprovalStatusBase_History_Source_ApprovalStatusBase_History_Target ::   a中从属角色和主要角色中的属性数量   关系约束必须相同。

我无法找到有关此错误的更多信息。

是因为两个表都有自己的主键但是由复合键连接?

这适用于旧的edmx :(

0 个答案:

没有答案