[英]EF6 Multiple foreign keys for ApplicationUser Error
对于Entity Framework和代码优先方法,我还很陌生,但我陷入了困境。 抱歉,这是一个愚蠢的问题。
我在这里发现了一些看起来相同的问题,但是遇到另一个错误,然后是其他人遇到的错误,我很乐意解决该问题,如果可能的话,无需添加其他参数。
所以基本上,我的ApplicationUser(从Identity加载)看起来像这样:
public class ApplicationUser : IdentityUser
{
public virtual Province Provincie { get; set; }
[ForeignKey("From")]
public virtual ICollection<Message> SentMessages { get; set; }
[ForeignKey("To")]
public virtual ICollection<Message> ReceivedMessages { get; set; }
}
我有一个消息类,看起来像:
public class Message
{
[Key]
public int ID { get; set; }
public virtual ApplicationUser From { get; set; }
public virtual ApplicationUser To { get; set; }
public String MessageContent { get; set; }
public DateTime Date { get; set; }
}
现在,当我尝试添加迁移时,出现以下错误:
类型为'EF_CF_Basics.Models.ApplicationUser'的属性'ReceivedMessages'上的ForeignKeyAttribute无效。 在从属类型“ EF_CF_Basics.Models.Message”上找不到外键名称“ To”。 Name值应该是逗号分隔的外键属性名称列表。
因此,实际上,Visual Studio告诉我找不到消息中的“收件人”,但确实存在。
您可能想使用[InverseProperty("From")]
代替[ForeignKey("From")]
和[InverseProperty("To")]
代替[ForeignKey("To")]
。 外键属性必须是标量( int
, string
, Guid
等),但是From
和To
属性实际上是实体,即它们是导航属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.