NHibernate -проблема сохранения моделей с отношениями родитель-потомок - PullRequest
1 голос
/ 10 июля 2010

У меня возникла проблема при сохранении родительского объекта, содержащего несколько дочерних элементов.

Классы моделей представлены следующим образом:

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, это не дает мне этого исключения.

1 Ответ

2 голосов
/ 10 июля 2010

Это не специфическая ошибка NHibernate.Вероятная причина в том, что у вас есть свойство Nullable в одном из ваших классов, которое вы пытаетесь привести к ненулевому типу.Это исключение выдается .NET Framework при попытке доступа к свойству Value типа NULL, который не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...