我想要一个对象来引用它自己。我该怎么写这个模型?例如。
public class Term
{
public int TermId { get; set; }
public string Name { get; set; }
public virtual Term PreviousTerm { get; set; }
public virtual int? PreviousTermId { get; set; }
}
生成的架构是:
TermId
Name
PreviousTermId
PreviousTerm_TermId
显然,PreviousTermId
在这里没有任何目的作为FK的关系。
但是当使用automapper时,我必须映射到PreviousTermId
,我无法创建新对象PreviousTerm
并将Id分配给它。我该如何解决这个问题?
答案 0 :(得分:2)
尝试在onModel OnModelCreating
事件
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Term>().HasOptional(t =>t.PreviousTerm).WithMany().
HasForeignKey(t=>t.PreviousTermId);
}