gpt4 book ai didi

nhibernate - 流利的Nhibernate-映射组件(值对象)的集合?

转载 作者:行者123 更新时间:2023-12-04 18:15:39 24 4
gpt4 key购买 nike

我目前正在使用像这样的组件图:

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)
}
}

我喜欢这种方式,因为我只需要在一个地方定义组件/值对象的映射即可。

我将如何对组件集合使用相同的语义? (例如,假设我们想将其更改为用户实体上的国家/地区集合)

最佳答案

您可以将其映射为组件集合。不幸的是,Fluent NHibernate中的HasMany()。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)
}
}

关于nhibernate - 流利的Nhibernate-映射组件(值对象)的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4214030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com