Pregunta

considerar la siguiente clase:

class Order {
    int OrderId {get; set;}
    int CustomerId {get; set;}
    string CustomerName {get; set;}
    //other fields go here
}

que está asignada a tabla Pedidos. ¿Es posible trazar el CustomerName propiedad a la tabla de clientes a través de la relación de clave externa?

¿Fue útil?

Solución

Sí, se puede utilizar el unirse a elemento de mapeo para esto. Otra opción es asignar una vista en lugar de una mesa. Pero si es posible, debería adoptar el enfoque orientado a objetos y el mapa de los muchos-a-muchos relación entre la Orden y de atención al cliente.

Otros consejos

le recomiendo encarecidamente que no se utiliza para este <join/>. A pesar de que lograría lo que solicitó, crea otros problemas.

En lugar de ello, la Orden debe tener una relación con el cliente. A continuación, puede proyectar el nombre si lo desea, aunque es más fácil usar order.Customer.Name.

Por lo tanto, se reduce a lo siguiente:

1) Añadir a la propiedad Customer Order

public virtual Customer Customer { get; set; }

2) Mapa la propiedad (en el ejemplo, CustomerId es el nombre de la columna de FK)

<many-to-one name="Customer" column="CustomerId"/>

3) Si desea específicamente para tener una propiedad CustomerName, proyecto que a partir de clientes:

public virtual string CustomerName { get { return Customer.Name; } }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top