Нет, нет.
Короче говоря, активная загрузка с помощью Include
автоматически загружает все связанные записи (например, ЛЕВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ без фильтра).
В любое время, когда вы хотите отфильтровать связанные записи, не используйте Include
- используйте проекцию анонимного типа, и EF просто "решит", что нужно извлечь:
var CustomerResults = ctx.Customers
.Select(x => new
{
Customer = x,
Orders = x.Orders.Where(y => y.DateTimeIn > value)
}).ToList();
Если вы хотите вернуть Customer
сущность, то просто сделайте другую проекцию в конце, просто убедитесь, что вы сначала материализовали запрос (.ToList()
).
РЕДАКТИРОВАТЬ - для возврата в объект клиента, например:
var Customers = new List<Customer>();
foreach (var anonType in CustomerResults)
{
Customer c = anonType.Customer;
c.Orders = anonType.Orders;
Customers.Add(c);
}
Я уверен, что вы можете сделать это с помощью выражения LINQ, но я не могу вспомнить синтаксис.