NHibernate -problem用父子关系保存模型

时间:2010-07-09 21:42:42

标签: nhibernate

我在保存包含多个子节点的Parent对象时遇到问题。

模型类如下:

public class Driver
{
   private IList<CitationEvent> _CitationEvents = new List<CitationEvent>(1);
}


public class CitationEvent
{
  public virtual Driver Driver { get; set; }
}

Driver.hbm.xml

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

CitationEvent.hbm.xml

中的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保存驱动程序时,它不会给我这个例外。

1 个答案:

答案 0 :(得分:2)

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

相关问题