我有一个场景,我想创建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
});
}
任何人都知道这样做的方法吗?