5

Tôi đang cố gắng để di chuyển ứng dụng cũ của tôi đến mới EF cốt lõi nhưng tôi không thể tìm thấy một số mối quan hệ như:WithOptional với Entity Framework Lõi

HasRequired(o => o.Document).WithOptional(o => o.CancelNote); 

Có một số phương pháp mở rộng? Tôi không thể tìm thấy trên tài liệu.

HasRequired Tôi nghĩ rằng có thể thay thế bằng phương pháp HasOne(), nhưng làm thế nào về WithOptional()?

Điều khác, theo số docs pháp nhân không sử dụng từ khóa virtual để tạo thuộc tính điều hướng, tải lười sẽ hoạt động như thế nào?

Trả lời

9

Bạn sẽ không tìm thấy phương thức tương đương HasOptional trong EF7. Theo quy ước nếu tài sản FK của bạn là nullable, bạn sở hữu chuyển hướng sẽ được coi như bắt buộc

modelBuilder.Entity<Blog>() 
       .HasOne(p => p.Document) 
       .WithOne(i => i.CancelNote) 
       .HasForeignKey<Document>(b => b.CancelNoteForeignKey); 

Về câu hỏi thứ hai của bạn, EF Core (EF7) không hỗ trợ Lazy Loading. Trong số link, bạn sẽ tìm thấy các tùy chọn hiện có để tải các thực thể liên quan

+0

Nhưng thuộc tính FK của tôi là thực thể Tài liệu: * Tài liệu tài liệu ảo công cộng {get; set;} * Thuộc tính này phải rỗng? – gog

+0

Không, điều bạn đang chỉ ra là thuộc tính điều hướng, thuộc tính FK của bạn phải là: 'public int? CancelNoteForeignKey {get; set;} ' – octavioccl