свободное владение nhibernate от одного до многих делает внешний ключ нулевым - PullRequest
0 голосов
/ 01 мая 2011

Я относительно новичок в NHberinate и использую его как альтернативу EF, потому что он хорошо работает на Mono.

Все мои объекты сопоставлены с AutoMapping.

Проблема в том,иметь отношения один ко многим.Один из классов Item имеет класс localizedText.Я также установил соглашение для Cascade all.

 public class CascadeAll : IHasOneConvention, IHasManyConvention, IReferenceConvention
 {
    public void Apply(IOneToOneInstance instance)
    {
        instance.Cascade.All();
    }

    public void Apply(IOneToManyCollectionInstance instance)
    {
        instance.Cascade.All();

    }

    public void Apply(IManyToOneInstance instance)
    {
        instance.Cascade.All();
    }
}

Когда я добавляю localizedText в мой класс Item, это работает хорошо, и таблица localizedText получает значения, записанные в таблицу, однако ... значение внешнего ключа"itemId" остается нулевым.Как я могу заставить его работать так, чтобы элементы localizedText имели добавленный объект при добавлении?

Зак

1 Ответ

0 голосов
/ 01 мая 2011

Здорово, когда вы найдете ответ на свои вопросы.

Для правильного выполнения SQL, особенно с любыми объектами, имеющими отношения, код для сохранения объектов должен находиться между следующими вызовами методов.begintransaction () и commitTransaction ().Только при вызове commitTransaction все значения записываются в базу данных, даже полям, которые не имеют значения, автоматически присваивается ноль вместо нуля в предыдущем случае.

...