Je rencontre des problèmes avec une relation plusieurs-à-plusieurs que j'essaie de créer. L'objectif est de sauver un client et les produits qu'il est autorisé à acheter. Les produits ne sont pas uniques à un client et existeront TOUJOURS dans la base de données avant d'essayer d'y associer un client.NHibernate mappage plusieurs-à-plusieurs à des objets existants
Ma cartographie de l'association ressemble actuellement ...
<set name="AllowedProducts" table="Customer_AllowedProducts">
<key column="CustomerId"></key>
<many-to-many class="Product" column="ProductId"/>
</set>
Si je tente de sauver un client je reçois un NHibernate.TransientObjectException
référencement du produit. Je comprends que je pourrais ajouter une cascade à l'ensemble, mais je ne veux JAMAIS mettre à jour ou enregistrer un produit lors de l'enregistrement d'un client, nous voulons seulement mapper un client à des produits existants.
Je dois noter que le client que j'essaie d'enregistrer arrive d'un appel de service Web et ne fait donc pas référence aux produits qui ont été précédemment chargés dans la session. Je voudrais éviter d'avoir à charger chaque produit qui sera mappé dans la session.
Merci
Alors que je trouve que Load va à la DB (peut-être quelque chose d'autre que j'ai besoin d'adresser, paresseux fait = vrai le produit cartographie). Cela résout totalement le problème principal. Merci –
Lazy devrait presque jamais être faux; si c'est le cas, il y a votre problème. –
right - Je dis que c'est à la valeur par défaut (true) –