Entity Framework 6 Compiled LINQ Query

c# caching compiled-query entity-framework linq

Question

I'm trying to improve performance of a web application by caching a query.

    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);

The error I receive is at compile time:

The type 'myEntity' cannot be used as type parameter 'TArg0' in the generic type or method 'System.Data.Entity.Core.Objects.CompiledQuery.Compile(System.Linq.Expressions.Expression>)'. There is no implicit reference conversion from 'myEntity' to 'System.Data.Entity.Core.Objects.ObjectContext'.

I'm using EF6

1
11
10/4/2014 10:12:23 AM

Accepted Answer

Ok it seems that in EF5 and greater the queries are automatically compiled and there is no need to compile them. The ObjectContext is not used anymore, and we have now DbContext: Compiled Query no implicit reference conversion to ObjectContext

Another interesting post on Compiled Query: http://blog.codinghorror.com/compiled-or-bust/

19
5/23/2017 12:25:13 PM


Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow