uno a uno
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;}
}
A tener en cuenta, que tiene que ser virtual
uno a muchos
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;}
}
muchos a muchos
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;}
}
nota que tiene que ser ICollection
enlaces Siguiendo tal vez útiles, click y click
espero que esto ayude.
EDITAR
Actualizado para incluir de uno a muchos.
editar # 2
Actualizado para incluir un potencial para hacer la factura < -> Producto escenario que fue solicitado por el comentario.
nota: esto no se ha probado, pero se debe poner en la dirección correcta
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
}
Usando esto podría iterar a través de todos los elementos de la factura y luego foreach ser capaz de mostrar los detalles de la factura acerca de cada artículo, así como una descripción del producto en sí.
No creo que necesiten ser virtuales (pero sí recomiendo hacerlas virtuales). Si no se marcan como virtuales, la relación seguirá existiendo, pero EF no utilizará la carga diferida y solo cargará el otro lado de la relación si la entidad correspondiente se ha cargado en la sesión. Además, para uno-a-muchos, cuya respuesta puede inferir cómo hacerlo, no necesita referencias en ambos lados, aunque puede tener sentido para las necesidades de la aplicación. –
Solo me interesa otro enlace que me interese, me pareció una introducción bastante útil para codificar primero: http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with -entity-framework-4.aspx – Manatherin
Gracias por la respuesta hasta el momento. Una cosa más. SI está en un contexto de factura donde su factura tiene línea de artículo. Eso implicaría una tabla de relaciones. ¿Cómo se puede proceder con este escenario? – Rushino