Trả lời

10

One to One

public class One 
{ 
    public int Id {get;set;} 
    public virtual Two RelationTwo {get;set;} 
} 

public class Two 
{ 
public int Id {get;set;} 
public virtual One RelationOne {get;set;} 
} 

Những điều cần lưu ý, đó phải là ảo

One to Nhiều

public class One 
{ 
    public int Id {get;set;} 
    public virtual ICollection<Two> RelationTwo {get;set;} 
} 

public class Two 
{ 
public int Id {get;set;} 
public virtual One RelationOne {get;set;} 
} 

Nhiều người đến Nhiều

public class One 
{ 
    public int Id {get;set;} 
    public virtual ICollection<Two> RelationTwo {get;set;} 
} 

public class Two 
{ 
public int Id {get;set;} 
public virtual ICollection<One> RelationOne {get;set;} 
} 

lưu ý rằng nó cần phải được ICollection

liên kết sau có thể hữu ích, clickclick

Hope this helps.

EDIT

cập nhật để bao gồm một đến nhiều.

EDIT # 2

cập nhật để bao gồm một tiềm năng để thực hiện hóa đơn < -> kịch bản sản phẩm được yêu cầu bởi nhận xét.

lưu ý: đây là chưa được kiểm tra, nhưng nên đưa bạn đi đúng hướng

public class Invoice 
{ 
    public int Id {get;set;} 
    //.. etc. other details on invoice, linking to shipping address etc. 

    public virtual ICollection<InvoiceProduct> Items {get;set;} 
} 

public class InvoiceProduct 
{ 
    public int Id {get;set;} 
    public int Quantity {get;set;} 
    public decimal Price {get;set;} // possibly calculated 
    //.. other details such as discounts maybe 

    public virtual Product Product {get;set;} 
    public virtual Invoice Order {get;set;} // maybe but not required 
} 

public class Product 
{ 
    public int Id {get;set;} 
    //.. other details about product 
} 

Sử dụng này, bạn sau đó có thể lặp qua tất cả các mặt hàng trên hóa đơn và sau đó foreach có thể hiển thị các chi tiết hóa đơn về từng mục cũng như mô tả từ chính sản phẩm.

+2

Tôi không tin rằng chúng cần phải ảo (nhưng tôi thực sự khuyên bạn nên làm cho chúng ảo). Nếu chúng không được đánh dấu là ảo, mối quan hệ vẫn sẽ tồn tại, nhưng EF sẽ không sử dụng tải chậm và sẽ chỉ tải phía bên kia của mối quan hệ nếu thực thể tương ứng đã được tải vào phiên. Ngoài ra, đối với một-nhiều, làm thế nào để làm điều đó có thể được suy ra bởi câu trả lời của bạn, không cần tài liệu tham khảo trên cả hai mặt, mặc dù nó có thể có ý nghĩa depneding về nhu cầu của ứng dụng. –

+1

Chỉ cần một liên kết khác mà bạn quan tâm, tôi thấy nó là một phần giới thiệu khá hữu ích để viết mã đầu tiên: http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with -entity-framework-4.aspx – Manatherin

+0

Cảm ơn câu trả lời cho đến nay. Một điều nữa. NẾU nó trong ngữ cảnh Bill nơi hóa đơn của bạn có dòng sản phẩm. Điều đó sẽ liên quan đến một bảng quan hệ. Làm thế nào để bạn tiến hành với kịch bản này? – Rushino

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