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/