Tôi muốn triển khai cấu trúc dữ liệu phân cấp (ví dụ: Sản phẩm -> Sản phẩm 2 ----> Sản phẩm3, Sản phẩm 2 ----> Product4) bằng cách sử dụng khung pháp nhân 6 phương pháp tiếp cận đầu tiên. Có một số phương pháp có sẵn nhưng tôi nghĩ rằng cách tiếp cận bảng đóng cửa là một phương pháp có thể đáp ứng tất cả các yêu cầu của tôi. Có thể một số hướng dẫn tôi làm thế nào để thực hiện cách tiếp cận bảng đóng cửa trong khuôn khổ thực thể 6 hiệu quả hoặc bất kỳ lựa chọn thay thế khác?các bảng đóng với khung thực thể 6
7
A
Trả lời
2
những gì bạn cần là một nhiều-nhiều mối quan hệ với một thực thể tự: Ví dụ:
public class SelfReferencingEntity
{
public SelfReferencingEntity()
{
RelatedSelfReferencingEntitys = new HashSet<SelfReferencingEntity>();
OtherRelatedSelfReferencingEntitys = new HashSet<SelfReferencingEntity>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SelfReferencingEntityId { get; set; }
public string Name { get; set; }
public decimal Cost { get; set; }
public virtual ICollection<SelfReferencingEntity> RelatedSelfReferencingEntitys { get; set; }
public virtual ICollection<SelfReferencingEntity> OtherRelatedSelfReferencingEntitys { get; set; }
}
và bạn cần phải ghi đè OnModelCreating phương pháp DbContext để hỗ trợ việc tự nhiều-nhiều tham khảo tương tự như sau:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<SelfReferencingEntity>()
.HasMany(p => p.RelatedSelfReferencingEntitys)
.WithMany(p => p.OtherRelatedSelfReferencingEntitys)
.Map(m =>
{
m.MapLeftKey("SelfReferencingEntityId");
m.MapRightKey("RelatedSelfReferencingEntityId");
m.ToTable("RelatedSelfReferencingEntity", "");
});
}
Có một ví dụ hoàn chỉnh rất hay được mô tả đầy đủ trong chương 6.3 của sách Entity Framework 6 Recipes giải quyết vấn đề này và mối quan hệ chuyển tiếp (mối quan hệ kéo dài nhiều cấp) và mã của nó có sẵn để tải xuống thông qua liên kết tôi đã đề cập.
Các vấn đề liên quan
- 1. Tên bảng động với khung thực thể
- 2. Oracle ODP.Net với khung thực thể 6 - ORA-00955 trên Chọn từ Bảng Xem
- 3. Khung thực thể không hoạt động với bảng thời gian
- 4. Các bảng được bản địa hóa và Khung thực thể
- 5. Ánh xạ tham gia các bảng trong khung thực thể
- 6. Bảng phân tách khung thực thể Xóa
- 7. Xác thực và ủy quyền không có khung thực thể trong ASP.NET 5 MVC 6
- 8. không thể nhập khung được nhúng với xcode 6 GM
- 9. Khuôn khổ thực thể 6 - Bảng thiếu chỉ có các khóa chính tham chiếu các bảng khác nhau
- 10. Lọc bảng "Bao gồm" trên truy vấn Khung thực thể
- 11. Thiết kế khung thực thể sẽ không thêm bảng
- 12. Các cột được mã hóa với Khung thực thể
- 13. Các khóa DB tổng hợp với Khung thực thể 4.0
- 14. Tự động tạo các bảng cơ sở dữ liệu từ các đối tượng, khung thực thể
- 15. ánh xạ nhiều bảng vào một lớp thực thể duy nhất trong khung thực thể
- 16. Xác thực khung thực thể
- 17. Hiệu suất của khung thực thể 4 so với khung thực thể 3.5 như thế nào?
- 18. Đang tải các thực thể lồng ghép/Bộ sưu tập với khung thực thể
- 19. Mối quan hệ trên cùng một bảng với Khung thực thể
- 20. Cách lấy tên bảng của thực thể được ánh xạ trong khung thực thể Core
- 21. Cách khởi tạo cơ sở dữ liệu với Khung thực thể và bảng thành viên
- 22. Khung thực thể Winforms
- 23. Tên thực thể so với tên bảng
- 24. chọn các cột cụ thể khi sử dụng câu lệnh include với khung thực thể
- 25. Nối các bảng từ hai cơ sở dữ liệu bằng cách sử dụng khung thực thể
- 26. Mã khung thực thể đầu tiên với loại TimeStamp
- 27. Hiểu giao dịch trong khung thực thể
- 28. Thừa kế bảng trên mỗi loại bê tông (TPC) trong khuôn khổ thực thể 6 (EF6)
- 29. C#, khung thực thể, tăng tự động
- 30. Cải thiện hiệu quả với Khung thực thể
Âm thanh với tôi như bạn chỉ cần một lớp ProductHierarchy với thuộc tính Danh sách trẻ em. Bạn cảm thấy yêu cầu nào sẽ không được điền đầy đủ? –