2014-12-25 4 views
0

У меня есть обработчик запроса, который принимает критерии, добавляет другие критерии, связанные с авторизацией пользователя, а затем возвращает количество записей, соответствующих этим критериям, вместе с необходимой страницей.Entity Framework Count и List одновременно

public PageResult GetPage<T>(Expression<Func<T, bool>> filter = null, int start, int count) 
    { 
     var query = db.Set<T>(); 
     //apply some criterias, sorting, etc to criteria 
        recordCount = query.Count(); 
        if (start != 0) 
         query = query.Skip(start); 
        if (count != 0) 
         query = query.Take(count); 
        var data = query.ToList(); 
     return new PageResult {rowCount = recordCount, data = data}; 
    } 

Я использую EF версии 6, есть простой способ запуска граф и Top х запросов асинхронной или параллельно.

ответ

1

Вы не можете запускать два запроса асинхронно на одном объекте DbContext, поэтому единственный способ - создать два контекста (по одному для каждого потока).

Больше информации здесь: http://visualstudiomagazine.com/articles/2014/04/01/async-processing.aspx

+0

хорошо, я предполагаю, что PLINQ не имеет смысла ни, не так ли? – hazimdikenli

+0

PLINQ для Linq для объектов, а не для Linq для объектов – Jcl