如何在Nhibernate中流畅地映射组件列表?
public class Registration : Entity
{
public virtual IList<InsuranceInformation> InsuranceInformation { get; set; }
}
public class InsuranceInformation
{
public virtual Person Insured { get; set; }
public virtual string PolicyNumber { get; set; }
public virtual string InsuranceCompanyId { get; set; }
public virtual string InsuranceCompanyName { get; set; }
public virtual string PlanType { get; set; }
public virtual string GroupNumber { get; set; }
public virtual FamilyRelationships InsuredRelationshipToPatient { get; set; }
}
此处注册是实体,而InsuranceInformation / Person是组件。
如果我将InsuranceInformation改为实体,我可以使用FluentNH Automapper轻松映射。但是当我将InsuranceInformation更改为Component时,它会抛出一个映射异常。
答案 0 :(得分:5)
Fluent NHibernate IDictionary with composite element mapping显示了映射组件字典的示例:
HasMany<CategoryResource>(x => x._resources)
.AsMap<string>("LangCode")
.KeyColumn("EntityID")
.Table("CategoryResources")
.Component(x =>
{
x.Map(c => c.Name);
x.Map(c => c.Description);
})
.Cascade.All();
希望这会指出你正确的方向。
答案 1 :(得分:3)
如果您使用的是Automapper,则需要通过修改InsuranceInformation
告诉IAutomappingConfiguration
是一个组件。覆盖IsComponent
方法并返回true
类型的InsuranceInformation
。