我使用EF 6和MVC 5.我的课程定义如下:
public class ConEdSignup
{
[Key, Column(Order = 0)]
public virtual ApplicationUser Attendee { get; set; }
[Key, Column(Order = 1)]
public virtual ConEdSession ConEdSession { get; set; }
[Required]
public DateTime SignupTime { get; set; }
[Required]
public bool Attended { get; set; }
}
这基本上是一个多对多关系的链接表,其中我有关于该关系的其他属性。当我尝试为此创建迁移时,它会给我错误" Models.ConEdSignup :: EntityType' ConEdSignup'没有定义键。定义此EntityType的键。"
我清楚地为它定义了键,但它并不喜欢它。如何将这些导航属性用作主键?
答案 0 :(得分:2)
我相信这是因为你选择了复杂的实体作为键。您还需要定义充当这些实体的外键的基元。
答案 1 :(得分:0)
您应该在MSDN上阅读这篇文章: -
http://msdn.microsoft.com/en-gb/data/jj679962.aspx
它解释了实体框架所遵循的惯例。它还解释了如何创建自己的自定义约定。
您需要以特定方式设置课程,以便EF识别您尝试实现的目标。