我有這樣的問題:映射不起作用
假設我有一個用戶,他是卡的性質:
public class User: Entity
{
...
public virtual IList<Card> Cards { get; set; }
...
}
<class name="User" table="Users">
<id name="Id" column="UserId">
<generator class="guid"/>
</id>
<version name="Version"/>
...
<list name="Cards" cascade="all" inverse="true">
<key column="ViolatorId" not-null="true"/>
<index column="CardIndex"/>
<one-to-many class="Card"/>
</list>
...
</class>
然後我從數據庫中獲取用戶,將其添加到卡的列表中,並調用session.Update()。
生成此SQL代碼:
INSERT INTO Cards
(Version,
ViolatorId,
ModeratorId,
IssueDate,
TermDate,
Cause,
Type,
CardId)
VALUES (1 /* @p0_0 */,
'6872df65-a1d7-40ef-abec-c14af96f3388' /* @p1_0 */,
'06060a30-252a-4f29-84fe-af5da110f049' /* @p2_0 */,
'2011-11-06T17:20:11.00' /* @p3_0 */,
'2011-11-06T22:20:11.00' /* @p4_0 */,
'Ad personam' /* @p5_0 */,
'Red' /* @p6_0 */,
'0454bbba-5ec9-429f-8830-d9cc33588f7a' /* @p7_0 */)
的問題在於,所述請求不包含CardIndex的值,並填充它在數據庫中作爲NULL。
如何使NHibernate正常工作?
當然,在這種情況下我可以使用Bag,但在項目中我有類似的例子。 –