(流畅)NHibernate:一个由不同表格中的字段组成的实体

时间:2009-02-25 10:23:13

标签: nhibernate fluent-nhibernate nhibernate-mapping

是否有一种编写NHibernate映射的方法,以便您可以拥有一个由来自不同数据库表的字段组成的实体?

例如,我有一个人员和地址表,我希望地址字段出现在我的人物对象中。

我想要一个像这样的实体:

public class person
{
    public virtual Guid Key{get; set;}
    public virtual string Name {get; set;}
    public virtual string Age {get; set;}
    public virtual string Address1 {get; set;} //from address table
    public virtual string Address2 {get; set;} //from address table

}

3 个答案:

答案 0 :(得分:3)

如果您使用的是Fluent NHibernate,您可以使用WithTable,如下例所示:

public class PersonMap : ClassMap<Person>
{
  public PersonMap()
  {
    Id(x => x.Key, "[Key]"); // Explicitly specify escaped column name to 
                             // avoid problems with reserved words
    Map(x => x.Name);
    Map(x => x.Age);

    WithTable("Address", m =>
    {
      m.Map(x => x.Address1);
      m.Map(x => x.Address2);
    });
  }
}

答案 1 :(得分:1)

我认为here's你需要什么。不确定Fluent NHibernate部分的支持,以及我不确定这个想法的有效性。

答案 2 :(得分:0)

您还可以考虑在Person和Address之间使用多对多表。在这种情况下,拥有一个属性“地址”可能是有意义的,它只能容纳你想要的许多地址列表。

您可以使用映射来完成映射(或任何集合映射效果最佳)。

相关问题