有没有办法在流畅的nhibernate中使用Join映射并指定过滤器?

时间:2011-01-14 22:59:13

标签: nhibernate join fluent-nhibernate filter nhibernate-mapping

我有一个场景,我想创建map一个类,它从两个表中一起提取数据。例如,我的两个表是Persons和PersonAddresses。我希望生成的映射类将这两者合并在一起:

public class PersonWithAddress
{
   public int ID { get; set; }
   // person fields ..

   // address fields
}

问题是每个人可以有多个地址,但只有一个地址被标记为主要地址。那是我想要进入这个实体的地址。所以我认为有一种方法可以在我的映射中使用Join()并在连接上指定一个过滤器,如下所示:

public PersonWithAddressMap()
{
   Table("People");
   Id(x => x.ID, "PersonID");

   Map(x => x.FirstName);
   // map all the person fields...

   Join("PersonAddresses", pa =>
   {
      pa.Optional();

      pa.Map(x => x.AddressLine1);
      // map all the other address fields

      // apply filtering
      pa.Where(x => x.IsPrimary == true);  // <-- does not exist
   });
}

任何人都知道这样做的方法吗?

0 个答案:

没有答案