Отображение вложенных компонентов в Fluent NHibernate
У меня есть "Пользовательская" сущность, которая содержит объект значения "Адрес". У меня есть это отображение ok с использованием концепции компонентов FNH. Тем не менее, адрес VO также содержит страну, которая является другим объектом ценности. Я предположил, что это должно быть просто вложенным как другой компонент, но это, похоже, не работает. Может ли кто-нибудь сказать мне, как я должен это решить?
Код для отображения ниже...
Спасибо!
public UserMapping()
{
Table("Users");
Id(c => c.Id).GeneratedBy.HiLo("100");
Map(c => c.UserName).Not.Nullable().Length(64);
Map(c => c.Email).Not.Nullable().Length(128);
Map(c => c.Password).Not.Nullable().Length(256);
Map(c => c.Roles).Length(64);
Map(c => c.FirstName).Not.Nullable().Length(64);
Map(c => c.LastName).Not.Nullable().Length(64);
Map(c => c.BirthDate).Not.Nullable();
//Address
Component(x => x.Address, m =>
{
m.Map(x => x.AddressLine1).Not.Nullable();
m.Map(x => x.AddressLine2);
m.Map(x => x.City).Not.Nullable();
m.Map(x => x.Region);
m.Map(x => x.PostalCode).Not.Nullable();
//*****Country Here********
// country has Name and Code
});
}
Ответы
Ответ 1
А, Джимми Богард из списка рассылки FNH показал мне - это довольно просто. Я не знаю, что я делал раньше! В любом случае, для кого-то, кто интересуется:
Component(c => c.Address, m =>
{
m.Component(cp => cp.Country, m2 =>
{
m2.Map(x => x.Name); //etc
}
Ответ 2
Я бы создал карту для Country
и использовал m.References(x => x.Country)
.