可能的实体框架渴望加载问题

时间:2012-06-22 09:17:44

标签: entity-framework-4 linq-to-entities eager-loading

我有这个方法

public ReadOnlyCollection<Auction> GetAuctionsByCriteria(Expression<Func<Auction, bool>>[] whereConditions, int pageSize, int pageIndex, out int total, AuctionCriteria criteria)
{
    // Applying filters
    var query = _composeFilter(criteria);

    // Adding external condition
    foreach (var whereCondition in whereConditions)
    {
        query = query.Where(whereCondition);
    }

    // Ordering and converting to list
    var orderBy = _getOrderBy(criteria);

    total = query.Count();
    List<Auction> list;
    if (criteria.Ascending)
        list = query.OrderBy(orderBy).Skip(pageSize * pageIndex).Take(pageSize).ToList();
    else
        list = query.OrderByDescending(orderBy).Skip(pageSize * pageIndex).Take(pageSize).ToList();

    return new ReadOnlyCollection<Auction>(list);
}

现在,Auction对象具有关联的Bids集合。当此集合在数据库中很大(3万+)时,上述方法中的以下行超时。当收集很小时,他们不会。

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

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

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

0 个答案:

没有答案