我正在尝试使用 Entity Framework 7 设置数据库并添加自引用多对多关系。我的项目中有这个课程:
public class Customer : User
{
// ...
[JsonIgnore]
public ICollection<Customer> Friends { get; set; } = new List<Customer>();
// ...
}
由于我是 EF 新手,我想知道设置自引用的最佳方法是什么? EF 会默认完成这项工作吗?还是我应该在 OnModelCreating 方法中添加一些内容?
我将其添加到 OnModelCreating 方法中,并且实现了我想要的目标。
modelBuilder.Entity<Customer>()
.HasMany(c => c.Friends)
.WithMany()
.UsingEntity<Dictionary<string, object>>(
"CustomerFriend",
j => j
.HasOne<Customer>()
.WithMany()
.HasForeignKey("CustomerId"),
j => j
.HasOne<Customer>()
.WithMany()
.HasForeignKey("FriendId")
);