我希望能够访问关注者并作为我的用户实体的集合进行关注:
public class User
{
public int Id { get; set; }
public ICollection<User> Followers { get; set; }
public ICollection<User> Following { get; set; }
}
然后这将映射到一个表:
用户关注者(用户 ID,关注者 ID)
我可以通过一些流畅的配置正确生成表格并为关注者工作:
modelBuilder.Entity<User>().HasMany(m => m.Followers).WithMany().Map(x => x.MapLeftKey("UserId").MapRightKey("FollowerId").ToTable("UserFollowers"));
棘手的部分是让 EF 知道 FollowerId 应该映射到同一个表,但 FollowerId 映射到用户。
我试过简单地添加:
modelBuilder.Entity<User>().HasMany(m => m.Following).WithMany().Map(x => x.MapLeftKey("FollowerId").MapRightKey("UserId").ToTable("UserFollowers"));
但我收到一个错误:
已经定义了具有模式 'dbo' 和表 'UserFollowers' 的 EntitySet 'UserUser1'。每个 EntitySet 必须引用一个唯一的模式和表。
我该如何解决这个问题?