导航属性作为主键
本文关键字:属性 导航 | 更新日期: 2023-09-27 18:09:36
我使用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的键。"
我清楚地为它定义了键,但它不喜欢它。如何使用这些导航属性作为主键?
我相信这是因为您选择了复杂实体作为它们的键。您还需要定义充当这些实体的外键的原语。
你应该在MSDN上阅读这篇文章:-
http://msdn.microsoft.com/en-gb/data/jj679962.aspx它也解释了实体框架遵循的约定。它还解释了如何创建自己的自定义约定。
您需要以一种特定的方式设置您的类,以便EF识别您试图实现的目标。