Question

J'ai une cartographie des commandes avec beaucoup de OrderItems. La cartographie permet d'économiser correctement à la fois l'ordre et OrderItems à la base de données lorsque je fais économiser sur tout l'Ordre, mais quand j'actualisent la commande, la liste des OrderItems que l'ordre contient est rempli de valeurs nulles (pour tous les éléments de commande Othe la table) jusqu'à ce qu'il atteigne la OrderItem qui a la clé étrangère de l'Ordre. Ainsi, le nombre total d'éléments de commande null est le nombre de lignes de la table OrderItems, (sans les items de commande réels qui sont liés à l'Ordre). Voici mes applications:

Ordre:

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

OrderItem:

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

Voici la mise en œuvre de la classe de l'Ordre:

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

Je lis que NHibernate ne supporte pas les listes comme beaucoup partie d'une relation, mais la sauvegarde ne fonctionne correctement, mais pas la charge. Est-ce que je dois convertir tout sur des ensembles pour que cela fonctionne?

Était-ce utile?

La solution

Juste du haut de ma tête, je me souviens d'avoir des problèmes avec

<list> 

et eu recours à

<bag> 

au lieu de la carte à l'interface IList .NET. Je ne sais pas si cela va résoudre votre problème.

Ce qui peut être utile est de voir comment le SQL réel qui frappe la base de données est différent de ce que vous attendez en permettant l'exploitation forestière à Console.Out ( voir ce blog )

Autres conseils

est-ce pas parce que votre collection fait OrderItems est paresseux chargé? Si vous spécifiez paresseuse = false sur votre liste (ou sac) la cartographie, cela ne devrait pas être le cas.

La question biensur est, ne voulez-vous paresseux charge les OrderItems, ou non? :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top