【发布时间】:2015-01-08 20:25:08
【问题描述】:
我有一个带有复合主键的类,用作 3 个不同表的查找表。因此,主键是 3 个对应外键的组合。
我想使用复合键中的一个键作为另一个表的外键。
这里是查找表映射
public MultiMap()
{
ToTable("multi");
HasKey(t => t.ParentId);
HasKey(t => t.AttributeId);
HasKey(t => t.ItemId);
Property(t => t.ParentId).HasColumnName("parent_id");
Property(t => t.AttributeId).HasColumnName("attribute_id");
Property(t => t.ItemId).HasColumnName("item_id");
}
我想使用 ItemID 作为外键映射到另一个表,但它不起作用。
我正在尝试使用它来映射它
HasRequired(t => t.ListItem).WithMany().HasForeignKey(t => t.ItemId);
但它不起作用。
我认为这是因为它试图将复合主键映射到外键。这只是一个 int。
我收到了
的消息Multiplicity is not valid in Role 'XXX' in relationship 'XXX'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'.
我应该如何进行映射?
【问题讨论】:
-
只是为了澄清:您要求在不同的表中引用复合键的一部分作为此 Multi 表的 FK,对吗?
-
@GertArnold Gah!这么愚蠢的错误。谢谢,做到了。如果您想将此作为答案,我会标记它。
标签: c# .net entity-framework fluent