EF 4.1可以先加载前5个子记录吗?

| 使用EF 4.1,我有一个模型(带有相关购买的客户),并且我想创建一个简短的概述页面,显示客户及其最近5次购买。有没有一种方法可以使用EF 4.1创建搜索,在该搜索中,我说所有名称为\'bret的客户,并使用紧急加载仅加载最近5次购买的交易?我知道ef 4.1支持使用include进行快速加载,但是您可以通过order指定限制吗?     
已邀请:
        不,您不能指定急切加载的限制。您只能在显式加载单个客户的情况下执行此操作:
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)
                    });
请注意,您必须投影到自定义或匿名类型。您无法投影回“ 2”类。     

要回复问题请先登录注册