在Fluent NHibernate中,如何映射组件列表?

在Fluent NHibernate中,如何映射组件列表?,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,如何在Nhibernate中流畅地映射组件列表 public class Registration : Entity { public virtual IList<InsuranceInformation> InsuranceInformation { get; set; } } public class InsuranceInformation { public virtual Person Insured { get; set; }

如何在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; }
 }
公共类注册:实体
{
公共虚拟IList保险信息{get;set;}
}
公共类保险信息
{
公共虚拟人{get;set;}
公共虚拟字符串PolicyNumber{get;set;}
公共虚拟字符串保险公司ID{get;set;}
公共虚拟字符串保险公司名称{get;set;}
公共虚拟字符串PlanType{get;set;}
公共虚拟字符串GroupNumber{get;set;}
公共虚拟家庭关系保险关系患者{get;set;}
}
此处,注册是一个实体,保险信息/人员是组成部分

如果我将保险信息更改为一个实体,我可以使用FluentNH Automapper轻松地映射它。但当我将保险信息更改为组件时,它会引发映射异常

显示了映射组件字典的示例:

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();
HasMany(x=>x.\u资源)
.AsMap(“语言代码”)
.KeyColumn(“EntityID”)
.表格(“类别资源”)
.Component(x=>
{
x、 Map(c=>c.Name);
x、 Map(c=>c.Description);
})
.Cascade.All();

希望这将为您指明正确的方向。

如果您使用的是Automapper,您需要通过修改
IAAutoMapping配置来告诉它
保险信息
是一个组件。覆盖
IsComponent
方法,并为您的
InsuranceInformation
类型返回
true