(Свободно) NHibernate Mapping: используйте IUserType для сопоставления пользовательского класса foo - если boo.foo.Id равен 0, тогда пишите в БД: boo.foo = NULL - PullRequest
2 голосов
/ 27 августа 2009

У меня есть следующая конструкция:

class Person {
 int Id;
 Foo fooObject;
}

class Foo {
 int Id;
 //some more properties - doesn't matter
}

База данных довольно проста для этого примера;

Таблица Person (int Id, int foo_Id)
Таблица Foo (int Id, некоторые другие свойства ...)

Я часто получаю объект Person, который содержит инициализированный объект Foo, который не содержит значения (например, Id равно 0). В этом случае я хочу сохранить NULL в поле базы данных Person.foo_Id.

Полагаю, мне следует использовать IUserType для такого преобразования, но я просто не знаю, как мне реализовать это с помощью пользовательского класса Foo ... У кого-нибудь есть опыт в этой теме? Кстати, я использую FluentNHibernate.

Заранее спасибо!

1 Ответ

0 голосов
/ 04 сентября 2009
References(x => x.fooObject).Nullable()
...