У меня возникла проблема при сохранении родительского объекта, содержащего несколько дочерних элементов.
Классы моделей представлены следующим образом:
public class Driver
{
private IList<CitationEvent> _CitationEvents = new List<CitationEvent>(1);
}
public class CitationEvent
{
public virtual Driver Driver { get; set; }
}
Отображение 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
, это не дает мне этого исключения.