0
我被困在試圖讓我想要正確保存的映射。對於我的例子,我有一個ItemY類,它可以有0,1,* Assets。但是,資產可以屬於ItemY或ItemZ對象。我試圖使用交叉引用表來存儲這個。NHibernate與XRef表的單向關聯
模式
TABLE [dbo].[ItemY](
[ItemYID] [int] IDENTITY(1,1) NOT NULL,
--more columns here
TABLE [dbo].[Asset](
[AssetID] [uniqueidentifier] NOT NULL,
[AssetTypeID] [int] NOT NULL,
[DisplayOrder] [int] NOT NULL,
[Location] [varchar](255) NOT NULL,
TABLE [dbo].[ItemYAsset](
[ItemYID] [int] NOT NULL,
[AssetID] [uniqueidentifier] NOT NULL,
映射:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyAssembly" namespace="My.Namespace">
<class name="ItemY" table="ItemY">
<id name="ItemYId" column="ItemYID">
<generator class="identity" />
</id>
<bag name="Images" table="ItemYAsset" inverse="true" cascade="all-delete-orphan">
<key column="ItemYID" not-null="true" />
<many-to-many class="Asset" column="AssetID" unique="true" />
</bag>
<!--more mapping here-->
</class>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyAssembly" namespace="My.Namespace">
<class name="Asset" table="Asset">
<id name="AssetId" column="AssetID">
<generator class="guid.comb" />
</id>
<property name="DisplayOrder"></property>
<property name="Location"></property>
</class>
</hibernate-mapping>
我不希望暴露在資產的ItemY的性質,因爲一個資產沒有按」 t總是屬於一個Ite我的。我的ItemY類保持正常,並且還保留了Asset類,但沒有任何內容添加到關聯表(ItemYAsset)中。任何想法我做錯了什麼?
這樣做,謝謝! – RobertMGlynn 2011-05-31 18:07:43