У меня есть сценарий, в котором я хочу создать карту класса, который собирает данные из двух таблиц вместе. Например, две мои таблицы - это 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
});
}
Кто-нибудь знает способ сделать это?