【发布时间】:2016-07-14 17:44:24
【问题描述】:
我在 EF 6 中映射一对一关系时遇到问题。我的课程是:
public class Membership
{
[Key]
public decimal Id { get; set; }
[ForeignKey("Id")]
public virtual User User { get; set; }
}
public class User
{
[Key]
public decimal Id { get; set; }
[ForeignKey("Id")]
public virtual Membership Membership { get; set; }
}
我遇到了异常:
无法确定之间关联的主体端 类型“用户”和“会员”。本协会的主体 必须使用关系流式 API 显式配置 或数据注释。
我认为我的问题是两个表具有相同的键值并且不存储另一个表的键。谢谢。
【问题讨论】:
-
还有为什么要使用
decimal作为id 列,int 或long 会是更好的选择。 -
您不能在表之间建立真正的 1-1 关系。一侧必须是可选的,否则您将永远无法添加一行,因为每一侧都要求另一侧存在。
-
谢谢伊戈尔。该教程有所帮助。我使用十进制是因为 DB2 驱动程序似乎无法将 DECIMAL[13,0] 映射到 long。
-
@DanZ 很高兴你成功了!
标签: c# .net entity-framework