2010-07-09 109 views
1

我有一个问题,保存包含多个子对象的父对象。NHibernate的问题与父母的子女关系保存模型

模型类如下:

XML映射在Driver.hbm.xml

<bag name="_CitationEvents" access="field" cascade="all-delete-orphan" inverse="true"> 
     <key column="DRIVER_ID" /> 
     <one-to-many class="CitationEvent" /> 
</bag> 

XML映射在CitationEvent.hbm.xml

<many-to-one name="Driver" class="Driver" column="DRIVER_ID" cascade="none"/> 

当我试图挽救driver,NHibernate的抛出以下例外"Nullable object must have a value"

节省了它的代码:关于这个问题

ITransaction transaction = session.BeginTransaction(IsolationLevel.ReadCommitted); 

try 
{ 
    session.Save(driver); 
    transaction.Commit(); 
} 
catch (Exception ex) 
{ 
    transaction.Rollback(); 
} 

一个多观察: 当我尝试只保存驱动程序与空列表_CitationEvents它不给我这个例外。

回答

2

这不是一个NHibernate特定的错误。可能的原因是您试图将其中一个类转换为非空类型的某个类中具有可空属性。尝试访问不具有Value的可空类型的Value属性时,.NET Framework引发此异常。