如果我有导航属性(即:虚拟),例如:
public virtual User Author { get; set; }
我想拥有该用户的ID,即:
public int AuthorId { get; set; }
如何告诉EF这个“AuthorId”必须与作者属性相关?
我不喜欢这种想法是自动的(EF神奇地推断出这一点) 因为可以对同一个表有多个引用:
public virtual User Author { get; set; }
public int AuthorId { get; set; }
public virtual User Receiver { get; set; }
public int ReceiverId { get; set; }
答案 0 :(得分:8)
实体框架将假定AuthorID是Author类的FK。有关详细信息,请参阅this blog post。
您还可以使用数据注释明确告知EF:
[ForeignKey("Author")]
public int AuthorId {get;set;}
或使用流畅的映射:
modelBuilder.Entity<YourClass>().HasRequired(p => p.Author)
.WithMany()
.HasForeignKey(p => p.AuthorId);