Entity framework 4 可能的实体框架加载问题

Entity framework 4 可能的实体框架加载问题,entity-framework-4,linq-to-entities,eager-loading,Entity Framework 4,Linq To Entities,Eager Loading,我有这个方法 public ReadOnlyCollection GetAuctionsByCriteria(表达式[]其中条件、int-pageSize、int-pageIndex、out-int-total、AuctionCriteria) { //应用过滤器 var query=\u composeFilter(条件); //添加外部条件 foreach(var whereCondition in whereConditions) { query=query.Where(whereCond

我有这个方法

public ReadOnlyCollection GetAuctionsByCriteria(表达式[]其中条件、int-pageSize、int-pageIndex、out-int-total、AuctionCriteria)
{
//应用过滤器
var query=\u composeFilter(条件);
//添加外部条件
foreach(var whereCondition in whereConditions)
{
query=query.Where(whereCondition);
}
//排序和转换为列表
var orderBy=\u getOrderBy(标准);
total=query.Count();
名单;
if(标准。升序)
list=query.OrderBy(OrderBy).Skip(pageSize*pageIndex).Take(pageSize).ToList();
其他的
list=query.OrderByDescending(orderBy).Skip(pageSize*pageIndex).Take(pageSize).ToList();
返回新的只读集合(列表);
}
台词

现在,拍卖对象有一个关联的出价集合。当此集合在数据库中较大时(30000+),上述方法中的以下行将超时。当藏品很小的时候,它们就不会

list=query.OrderBy(OrderBy).Skip(pageSize*pageIndex.Take(pageSize).ToList();

list=query.OrderByDescending(orderBy).Skip(pageSize*pageIndex).Take(pageSize).ToList();

我不能调试这个(不要问),但(对我来说)竞价集合正被急切地与拍卖一起加载似乎是合乎逻辑的。我如何解决这个问题?这甚至是一个急切的加载问题吗?

您能说明拍卖和出价是如何关联和查询的吗?数据库索引是否正常?你能改变索引吗?这好像是数据库超时了。EF/Linq to实体没有任何内置超时机制。请注意,EF加载的实体不应超过pageSize。这意味着,如果您有100个实体或1000000个实体,加载这些实体所需的时间应该大致相同。对我来说,准备实体(即筛选、排序等)需要花费太多时间,这表明数据库存在问题。