Нет, вы не можете указать лимит для нетерпеливой загрузки.Вы можете сделать это только в явной загрузке для одного клиента:
var customer = context.Customers.Where(c => c.Id == customerId);
context.Entry(customer)
.Collection(c => c.Purchases)
.Query()
.OrderByDescending(p => p.Date)
.Take(5)
.Load();
Если вы хотите сделать это для нескольких клиентов в одном запросе, вы должны использовать проекцию:
var query = context.Customers
.Select(c => new {
Customer = c,
Purchases = c.Purchases.OrderByDescending(p => p.Date).Take(5)
});
Имейте в виду, чтоВы должны проецировать на пользовательский или анонимный тип.Вы не можете проецировать обратно в Customer
класс.