2010-06-13 10 views
0

J'ai deux modèles, un modèle de produit et un modèle ShoppingCart. Le modèle ShoppingCart a une collection de produits en tant que propriété appelée Products (List). Voici la cartographie de mon modèle ShoppingCart.Collections NHibernate: relations plusieurs-à-plusieurs

<class name="MyProject.ShoppingCart, MyProject" table="ShoppingCarts"> 
    <id name="Id" column="Id"> 
    <generator class="native" /> 
    </id> 

    <many-to-one name="Company" class="MyProject.Company, MyProject" column="CompanyId" /> 
    <property name="ExternalId" column="GUID" generated="insert" /> 
    <property name="Name" column="Name" /> 
    <property name="Total" column="Total" /> 
    <property name="CreationDate" column="CreationDate" generated="insert" /> 
    <property name="UpdatedDate" column="UpdatedDate" generated="always" /> 

    <bag name="Products" table="ShoppingCartContents" lazy="false"> 
    <key column="ShoppingCartId" /> 
    <many-to-many column="ProductId" class="MyProjectMyProject.Product, MyProject" fetch="join" /> 
    </bag> 
</class> 

Lorsque je tente de sauver la DB, le ShoppingCart est sauvé, mais les lignes de mappage dans ShoppingCartContents ne sont pas sauver, me faire chose qu'il ya un problème avec la cartographie. Où vais-je me tromper ici?

Répondre

0

Ajoutez la propriété en cascade au sac

<bag name="Products" table="ShoppingCartContents" lazy="false" cascade="all"> 

Il y a plusieurs options pour la cascade, de NH doc:

cascade="all|none|save-update|delete|all-delete-orphan" 

HTH

0

Vous devez peform changements dans la transaction, sinon, nhibernate n'enregistrera pas les modifications dans les collections.

Questions connexes