【发布时间】:2017-03-12 08:48:15
【问题描述】:
用户-朋友关系
我找到答案了
Entity Framework Core: many-to-many relationship with same entity 并尝试这样。
实体:
public class User
{
public int UserId { get; set; }
public virtual ICollection<Friend> Friends { get; set; }
}
public class Friend
{
public int MainUserId { get; set; }
public User ManUser { get; set; }
public int FriendUserId { get; set; }
public User FriendUser { get; set; }
}
流畅的 API:
modelBuilder.Entity<Friend>()
.HasKey(f => new { f.MainUserId, f.FriendUserId });
modelBuilder.Entity<Friend>()
.HasOne(f => f.ManUser)
.WithMany(mu => mu.Friends)
.HasForeignKey(f => f.MainUserId);
modelBuilder.Entity<Friend>()
.HasOne(f => f.FriendUser)
.WithMany(mu => mu.Friends)
.HasForeignKey(f => f.FriendUserId);
当我添加迁移时,错误消息是
无法在“User.Friends”和“Friend.FriendUser”之间创建关系,因为“User.Friends”和“Friend.ManUser”之间已经存在关系。 导航属性只能参与单个关系。
我该怎么办?或者我应该创建一个实体 FriendEntity:User?
【问题讨论】:
标签: c# many-to-many entity-framework-core