我有一个'用户'实体,其中包含'地址'值对象。我使用FNH的Component概念确定了这个映射。但是,Address VO还包含一个Country,它是另一个值对象。我曾假设这应该只是作为另一个组件嵌套,但这似乎不起作用。谁能告诉我应该如何解决这个问题?
映射代码如下......
谢谢!
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
});
}
答案 0 :(得分:13)
啊,来自FNH邮件列表的Jimmy Bogard向我展示了 - 这很简单。我以前不知道自己在做什么!无论如何,对于其他感兴趣的人:
Component(c => c.Address, m =>
{
m.Component(cp => cp.Country, m2 =>
{
m2.Map(x => x.Name); //etc
}
答案 1 :(得分:0)
我会为Country
创建一个地图并使用m.References(x => x.Country)
。