Pregunta

Tengo un mapeo Orden con muchos artículos de pedido. El mapeo guarda correctamente tanto la Orden y artículos de pedido a la base de datos cuando utilice el comando Guardar en apenas la Orden, pero cuando vuelvo a cargar ese orden, la lista de artículos de pedido que la orden contiene está lleno de valores nulos (para todos los artículos de la orden othe en la tabla) hasta que alcanza el artículo de pedido que tiene la clave externa de la Orden. Por lo que el número total de elementos de orden nulo es el número de filas de la tabla de pedido, (sans los artículos de la orden reales que están relacionados con la Orden). Aquí está mi asignaciones:

Orden:

<list name="OrderItems" table="OrderItems" cascade="all" inverse="true" >
  <key column="OrderID"/>
  <index column="OrderItemID" />
  <one-to-many class="OrderItem" not-found="ignore" />
</list>

artículo de pedido:

<many-to-one name="Order" class="Order" column="OrderID" not-null="true" />

Aquí implementación de la clase de la Orden:

public class Order : {
    private IList<OrderItem> orderItems = new List<OrderItem>();

He leído que NHibernate no soporta listas como los muchos parte de una relación, pero el guardar funciona correctamente, pero no la carga. ¿Tengo que convertir todo a juegos en orden para que esto funcione?

¿Fue útil?

Solución

Sólo de la parte superior de mi cabeza recuerdo haber tenido problemas con

<list> 

y recurrió a

<bag> 

en lugar de asignar a la interfaz IList .NET. No estoy seguro si que va a resolver su problema.

Lo que puede ser útil es mirar cómo el SQL real que está golpeando la base de datos es diferente de lo que se espera habilitando el registro de Console.Out ( ver este blog )

Otros consejos

¿No es esto causado por su colección de artículos de pedido es cargado ligeramente? Si especifica lazy = falsa en su lista (o bolsa) de mapeo, entonces esto no debería ser el caso más.

La pregunta offcourse es decir, hacer que desea cargar los artículos de pedido perezoso, o no? :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top