Если вы хотите отфильтровать связанные записи, это невозможно при использовании включений. Включить позволяет загружать только все свойства. Единственный возможный способ получить отфильтрованные свойства навигации в одном запросе - это запрос вручную с проекцией на не-сущность или анонимный тип:
var query = from p in context.Persons
select new
{
Person = p,
Addresses = p.PersonAddreeses
.Where(pa => pa.Address.Country == "Ireland")
};
Если вы хотите получить человека, который содержит адрес из Ирландии, без фильтрации загруженных адресов, вы не можете использовать определенный вами запрос. Где ожидает выражение, в результате которого bool
не другой запрос. Попробуйте это:
query = query.Where(p => p.PersonAddresses
.Any(pa => pa.Address.Country == "Ireland");
Я абсолютно не уверен, что такое Search
в вашем примере.