2017-02-08 12 views
6

Câu hỏi của tôi cũng tương tự như this một, nhưng trong trường hợp này tôi làm có một tài sản thu về phụ huynh đề cập đến childeren:EF Mã Đầu tiên chính nước ngoài không có tài sản chuyển hướng, nhưng với tài sản thu mẹ

public class Parent 
{ 
    public int Id { get; set; } 
    public virtual ICollection<Child> Children { get; set; } 
} 

public class Child 
{ 
    public int Id { get; set; } 
    public int ParentId { get; set; } 
} 

Và giống như câu hỏi được trích dẫn, tôi không muốn/cần một tài sản Parent trên Child.

Vậy cú pháp sau sẽ được thay đổi như thế nào để xác định mối quan hệ?

modelBuilder.Entity<Child>() 
    .HasRequired(c => c.Parent) <---- no such property "Parent" 
    .WithMany(p => p.Children) 
    .HasForeignKey(c => c.ParentId); 

Trả lời

6

Bạn có thể sử dụng phương pháp WithRequired mà không tham số:

modelBuilder.Entity<Parent>() 
    .HasMany(p => p.Children) 
    .WithRequired() 
    .HasForeignKey(c => c.ParentId); 

With phần thể bỏ trống nếu không có tài sản ngược hướng.

+0

Ah - Tôi đã không nhận ra rằng liên kết có thể được xác định trên đầu của cha mẹ. Điều này làm việc trong thực tế (EF duy trì mối quan hệ khi tạo, xóa, vv)? – BCA

+0

Có, mối quan hệ một đến nhiều sẽ được tạo trong DB của bạn, do đó, nó sẽ duy trì mối quan hệ khi bạn thực hiện tất cả các hoạt động CRUD – octavioccl

Các vấn đề liên quan