Один к одному
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
}
С помощью этого вы могли бы перебрать все элементы на счете-фактуре, а затем Еогеасп быть в состоянии показать детали счета-фактуры о каждом предмете, а также описание самого продукта.
Я не верю, что они должны быть виртуальными (но я настоятельно рекомендую сделать их виртуальными). Если они не помечены как виртуальные, отношения все равно будут существовать, но EF не будет использовать ленивую загрузку и будет загружать другую сторону отношения, если соответствующий объект был загружен в сеанс. Кроме того, для одного-ко-многим, который, как это сделать, может быть выведен по вашему ответу, не требует ссылок с обеих сторон, хотя это может иметь смысл в зависимости от потребностей приложения. –
Еще одна ссылка, которую вы заинтересуете, я обнаружил, что это довольно полезное введение для первого кода: http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with -entity-framework-4.aspx – Manatherin
Спасибо за ответ. Еще кое-что. ЕСЛИ его в контексте Билла, где у вашего счета есть строка позиций. Это будет связано с таблицей отношений. Как вы продвигаетесь по этому сценарию? – Rushino