Tôi đang cố gắng ánh xạ mối quan hệ nhiều-nhiều với cùng một thực thể. Thực thể User
có một trường IList<User>
dữ liệu cho Contacts
, mà lưu trữ danh bạ của người sử dụng/bạn bè thông tin:Cấu trúc thực thể Core: mối quan hệ nhiều-nhiều với cùng một thực thể
public class User : DomainModel
{
public virtual IList<User> Contacts { get; protected set; }
//irrelevant code omitted
}
Khi tôi cố gắng sử dụng API thông thạo để lập bản đồ này nhiều mối quan hệ, nó mang lại cho tôi một số rắc rối. Rõ ràng, khi tôi sử dụng HasMany()
trên thuộc tính user.Contacts
, nó không có phương thức WithMany()
để gọi tiếp theo. Intellisense từ Visual Studio chỉ hiển thị WithOne()
, nhưng không hiển thị WithMany()
.
modelBuilder.Entity<User>().HasMany(u => u.Contacts).WithMany()
// gives compile time error: CS1061 'CollectionNavigationBuilder<User, User>' does not contain a definition for 'WithMany' and no extension method 'WithMany' accepting a first argument of type
Vậy tại sao điều này lại xảy ra? Có điều gì tôi đã làm sai để lập bản đồ mối quan hệ nhiều-nhiều này không?
Bạn có thể mất một cái nhìn lúc này: https://ef.readthedocs.io/en/latest/modeling/relationships.html#many-to-many –