Скомпилированные запросы в Linq to Devart Entity Framework

Для скомпилированных запросов в LINQ to Object Entity FrameWork, в основном, позволяет компилировать запросы за один раз, а затем его можно использовать повторно без компиляции в другой раз.

Например:

using System.Data.Objects;
public static Func<entity, string, IQueryable<Entity>>
    TestQuery = CompiledQuery.Compile((entity db, string param) =>
        from e in ctx.Entities where e.Field == param select e);

У меня вопрос к LINQ для Devart Entity FrameWork, который не может передать объект. потому что он допускает только datacontext в качестве допустимого параметра.

Пожалуйста, предложите мне, как преобразовать linq в devart framework(edml) для скомпилированных запросов.

ПРИМЕЧАНИЕ: он отлично работает в "Devart LinqConnect Model(lqml)", например:

 public static Func<MyContext.dataContext , long,
             IQueryable<EMyContext.dataContext.tableName>>
           shopByCountry = CompiledQuery.Compile((MyContext.dataContext db,     long idCountry) =>
             from a in db.Countries where a.idCountry == idCountryselect a);

но не в "Devart Entity Model", так как edml - это "ObjectContext", lqml - это "DataContext"

Заранее спасибо,

1 ответ

Решение

CompiledQuery ( http://msdn.microsoft.com/en-us/library/bb896297.aspx) в Entity Framework поддерживается только для ObjectContext. Для DbContext такой поддержки нет (EF v4.1 / EF v4.2): http://blogs.msdn.com/b/adonet/archive/2011/03/02/ef-4-1-is-coming-dbcontext-api-amp-code-first-rtw.aspx. Возможно, вы работаете с DbContext.

В случае Entity Framework июнь 2011 CTP можно избежать явной компиляции, потому что автоматически скомпилированные запросы LINQ реализованы в EF июнь 2011 CTP: http://blogs.msdn.com/b/efdesign/archive/2011/06/30/auto-compiled-linq-queries-entity-framework-june-2011-ctp.aspx.

Другие вопросы по тегам