ответ

10

Один к одному

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;} 
} 

вещи отметить, что это должно быть виртуальным

Один ко многим

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;} 
} 

Многие ко многим

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;} 
} 

отмечают, что она должна быть ICollection

Следующие ссылки может быть полезным, click и click

Надежда это помогает.

EDIT

Обновленный, чтобы включать один ко многим.

EDIT # 2

Обновленный, чтобы включать потенциал для ведения счета-фактуры < -> сценарий продукта, который был запрошен комментарий.

примечание: это не тестировался, но должен поставить вас в правильном направлении

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 
} 

С помощью этого вы могли бы перебрать все элементы на счете-фактуре, а затем Еогеасп быть в состоянии показать детали счета-фактуры о каждом предмете, а также описание самого продукта.

+2

Я не верю, что они должны быть виртуальными (но я настоятельно рекомендую сделать их виртуальными). Если они не помечены как виртуальные, отношения все равно будут существовать, но EF не будет использовать ленивую загрузку и будет загружать другую сторону отношения, если соответствующий объект был загружен в сеанс. Кроме того, для одного-ко-многим, который, как это сделать, может быть выведен по вашему ответу, не требует ссылок с обеих сторон, хотя это может иметь смысл в зависимости от потребностей приложения. –

+1

Еще одна ссылка, которую вы заинтересуете, я обнаружил, что это довольно полезное введение для первого кода: http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with -entity-framework-4.aspx – Manatherin

+0

Спасибо за ответ. Еще кое-что. ЕСЛИ его в контексте Билла, где у вашего счета есть строка позиций. Это будет связано с таблицей отношений. Как вы продвигаетесь по этому сценарию? – Rushino