UpT*_*eek 5 nhibernate fluent-nhibernate
我目前正在使用这样的组件映射:
public class UserMapping
{
public UserMapping()
{
Id(c => c.Id).GeneratedBy.HiLo("100");
Map(c => c.UserName);
Component(c => c.Country, CountryComponentMapping.Map);
}
}
public sealed class CountryComponentMapping
{
public static void Map(ComponentPart<Country> part)
{
part.Map(x => x.CountryName)
part.Map(x => x.CountryAlpha2)
}
}
Run Code Online (Sandbox Code Playgroud)
我喜欢这个因为我只需要在一个地方定义组件/值对象的映射.
我将如何对组件的集合使用相同的语义?(例如,假设我们想要将其更改为用户实体上的国家/地区集合)
您可以将其映射为组件集合.不幸的是,HasFany()没有重载.Fluent NHibernate中的Component()允许你指定你想要使用ComponentMap的派生类.您可以使用上述技术的修改.
public sealed class UserMap : ClassMap<User> {
public UserMap() {
Id(c => c.Id).GeneratedBy.HiLo("100");
Map(x => x.Name);
HasMany(x => x.Countries).Component(CountryComponentMapping.Map);
}
}
public sealed class CountryComponentMapping {
public static void Map(CompositeElementBuilder<Country> part) {
part.Map(x => x.CountryName);
part.Map(x => x.CountryAlpha2)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |