Двунаправленный Nhibernate один-к-одному (не HasOne) - PullRequest
2 голосов
/ 20 сентября 2011

Я пытаюсь установить отношения «один-к-одному» (двусторонние ссылки) между двумя классами. Оба свойства не должны быть обнуляемыми. Проблема заключается в том, что при попытке сохранить одно поверх другого возникает ошибка с нулевым или временным значением.

class A
{
    C C {get;set;}
}

class C
{
    A A {get;set;}
}


class AMapping : ClassMap<A>
{
    AMapping()
    {
        References(x=>x.C)
            .Not.Nullable();
    }
}
class CMapping : ClassMap<C>
{
    CMapping()
    {
        References(x=>x.A)
            .Not.Nullable();
    }
}

Я понимаю, что поскольку NHibernate не может сделать ссылку на объект, который еще не существует (в базе данных), но будет ли шаблон или функция, которую я могу использовать, чтобы обойти это ограничение?

1 Ответ

0 голосов
/ 20 сентября 2011

Попробуйте установить cascade = "none" на одной стороне сопоставления "многие к одному". Что-то вроде:

References(x=>x.C)
        .Not.Nullable()
        .Cascade.None();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...