2013-02-22 15 views
5

Tôi đang sử dụng Entity Framework 5 Mã đầu tiên và tôi có mô hình sau:Làm thế nào để lập bản đồ mối quan hệ xác định trong Entity Framework 5 mã thực thể đứa con đầu lòng với nhiều thực thể cha mẹ loại trừ lẫn nhau

class Document 
{ 
    public int Id {get;set;} 
    public String Name {get;set;} 

    public IList<Page> Pages {get;set;} 
} 

class DocumentTemplate 
{ 
    public int Id {get;set;} 
    public String Description {get;set;} 
    public String Name {get;set;} 

    public IList<Page> Pages {get;set;} 
} 

class Page 
{ 
    public int Id {get;set;} 
    public string Text {get;set;} 
} 

tôi biết làm thế nào để lập bản đồ một mối quan hệ xác định nơi thực thể con có 1 phụ huynh. Nhưng tôi muốn ánh xạ thực thể Trang sao cho nó có mối quan hệ xác định cho từng phụ huynh.

Ngoài ra, các mối quan hệ cha mẹ là loại trừ lẫn nhau. Một trang cụ thể sẽ thuộc về một DocumentTemplate hoặc một Tài liệu, không phải cả hai.

Bản đồ này có thể thực hiện được trong Entity Framework 5 không?

Tôi không muốn tạo các thực thể riêng biệt cho Trang vì chúng về cơ bản sẽ giống nhau, ngoại trừ mối quan hệ cha mẹ.

TIA.

Trả lời

0

Tôi không nghĩ rằng bạn có thể có nhiều bậc cha mẹ, Nhưng tôi sẽ xem xét các tùy chọn sau đây:
(Bất kỳ tài liệu thuộc về một số công trình mẫu, chỉ có mẫu có thể có các trang)

class Document 
{ 
    public int Id {get;set;} 
    public String Name {get;set;} 
    public DocumentTemplate DocumentTemplate{get;set;} 
} 

class DocumentTemplate 
{ 
    public int Id {get;set;} 
    public String Description {get;set;} 
    public String Name {get;set;} 

    public IList<Page> Pages {get;set;} 
} 

class Page 
{ 
    public int Id {get;set;} 
    public string Text {get;set;} 
} 
0

này sẽ làm việc cho bạn:

class Page 
{ 
    public int Id {get;set;} 
    public string Text {get;set;} 

    public int? DocumentId { get; set; } // non-mandatory relationship to Document 
    public int? DocumentTemplateId { get; set; } // non-mandatory relationship to DocumentTemplate 

    // ... navigation properties 
} 
Các vấn đề liên quan