В Fluent NHibernate, как вы отображаете список компонентов? - PullRequest
2 голосов
/ 11 ноября 2010

как вы легко сопоставляете список компонентов в 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 на Entity, я могу легко сопоставить ее с FluentNH Automapper. Но когда я изменяю InsuranceInformation на Component, он генерирует исключение сопоставления.

Ответы [ 2 ]

5 голосов
/ 11 ноября 2010

Свободный NHictionarynate IDictionary с составным сопоставлением элементов показывает пример сопоставления словаря компонентов:

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();

Надеюсь, это укажет вам правильное направление.

3 голосов
/ 12 ноября 2010

Если вы используете Automapper, вам нужно сообщить ему, что InsuranceInformation - это компонент, изменив IAutomappingConfiguration.Переопределите метод IsComponent и верните true для вашего InsuranceInformation типа.

...