我有两个型号,一个产品型号和一个ShoppingCart型号。 ShoppingCart模型将产品集合作为名为Products(List)的属性。这是我的ShoppingCart模型的映射。
<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>
当我尝试保存到数据库时,ShoppingCart已保存,但ShoppingCartContents中的映射行未保存,这使得我认为映射存在问题。我在哪里错了?
答案 0 :(得分:0)
将级联属性添加到包中
<bag name="Products" table="ShoppingCartContents" lazy="false" cascade="all">
级联有几种选择,来自NH doc:
cascade="all|none|save-update|delete|all-delete-orphan"
HTH
答案 1 :(得分:0)
您应该执行事务中的更改,否则nhibernate将不会保存集合中的更改。