После извлечения простого условия Linq2Entity в IQueryable из
orders = orders.Where(o => o.AddressId.HasValue && _validAddressIds.Contains(o.AddressId.Value));
к методу примерно так:
orders = orders.Where(o => IsValidAddress(o.AddressId));
...
private bool IsValidAddress(long addressId)
{
return adressId.HasValue && _validAddressIds.Contains(addressId);
}
условие больше не содержится в сгенерированном SQL, оно применяется только в памяти. Почему это ???