导航属性作为主键

时间:2014-06-22 00:49:05

标签: c# entity-framework navigation-properties

我使用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的键。"

我清楚地为它定义了键,但它并不喜欢它。如何将这些导航属性用作主键?

2 个答案:

答案 0 :(得分:2)

我相信这是因为你选择了复杂的实体作为键。您还需要定义充当这些实体的外键的基元。

答案 1 :(得分:0)

您应该在MSDN上阅读这篇文章: -

http://msdn.microsoft.com/en-gb/data/jj679962.aspx

它解释了实体框架所遵循的惯例。它还解释了如何创建自己的自定义约定。

您需要以特定方式设置课程,以便EF识别您尝试实现的目标。

相关问题