Entity Framework 6 скомпилированный запрос LINQ
Я пытаюсь повысить производительность веб-приложения путем кэширования запроса.
public static Func<myEntity, List<HASHDuplicates>, IQueryable<FormResponse>> CompiledDuplicatedResponses =
CompiledQuery.Compile<myEntity, List<HASHDuplicates>, IQueryable<FormResponse>>(
(db, hashes) => from r in db.FormResponse
from h in db.IndexHASHes
from d in hashes
where r.id == h.FormResponseID && h.IndexHASHString == d.hash
select r);
ошибка, которую я получаю во время компиляции:
тип "myEntity" не может использоваться в качестве параметра типа "TArg0" в системе универсального типа или метода.Данные.Сущность.Ядро.Объекты.Compiledquery на.Compile (System.В LINQ.Выражения.Выражение.')> Нет неявного преобразования ссылок из "myEntity" в - Система.Данные.Сущность.Ядро.Объекты.Контекст objectcontext'.
Я через ef6
1 ответов
Ok кажется, что в EF5 и выше запросы автоматически компилируются, и нет необходимости их компилировать. ObjectContext больше не используется, и теперь у нас есть DbContext: скомпилированный запрос нет неявного преобразования ссылки в ObjectContext
еще один интересный пост по скомпилированному запросу: http://blog.codinghorror.com/compiled-or-bust/