我有以下3個類。NHibernate +多對多+包+映射表
BusinessStream
Scheme
Bus_Stream_Scheme_Map
當我嘗試執行transaction.Commit()
方法,session.SaveOrUpdate()
爲BusinessStream
後,我得到以下錯誤,
不能將NULL插入( 「DBO」。 「BUS_STREAM_SCHEME_MAP」。 「BUS_STREAM_SCHEME_MAP_ID」)
HBM文件,
BusienssStream
<class name="BusinessStream" table="BUS_STREAM">
<id name="Id" column="BS_ID" type="Int32" >
<generator class="sequence">
<param name="sequence">BUS_STREAM_SEQ</param>
</generator>
</id>
<property name="Name" column="Name" type="String"/>
<property name="Description" column="Description" type="String"/>
<bag name="Schemes" table="BUS_STREAM_SCHEME_MAP" lazy="false">
<key column="BUS_STREAM_ID"></key>
<many-to-many class="Scheme" column="SCHEME_ID"></many-to-many>
</bag>
</class>
方案
<class name="Scheme" table="SCHEME_DEF">
<id name="Id">
<column name="SCHEME_ID"/>
<generator class="native">
<param name="sequence">SCHEME_DEF_SEQ</param>
</generator>
</id>
<property name="Description" column="SCHEME_DESC" type="String"/>
</class>
BusinessStream_Scheme_Map
<class name="BusinessStreamSchemeMapping" table="BUS_STREAM_SCHEME_MAP">
<id name="Id">
<column name="BUS_STREAM_SCHEME_MAP_ID"/>
<generator class="native">
<param name="sequence">BUS_STREAM_SCHEME_MAP_SEQ</param>
</generator>
</id>
</class>
我在做什麼錯?
自從我和NHibernate一起工作以來,我一直記得,如果沒有關聯表的映射條目,多對多關係可以被映射。您的業務邏輯和/或其他用例需要映射「BusinessStreamSchemeMapping」嗎? –
我們正在辯論,看看我們是否可以避免地圖類/表。謝謝你的評論。 – Pak