首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq to Devart实体框架中的编译查询

Linq to Devart实体框架中的编译查询
EN

Stack Overflow用户
提问于 2012-01-09 21:40:12
回答 1查看 857关注 0票数 1

对于编译的查询,在LINQ to Object Entity FrameWork中,它基本上允许查询一次编译,然后可以在不编译另一次的情况下重用。

例如:

代码语言:javascript
复制
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 to Devart Entity FrameWork,无法传递实体。因为它只允许datacontext作为有效参数。

请建议我如何将linq转换为devart实体框架(Edml)以用于编译的查询。

注意:它在"Devart LinqConnect模型(Lqml)“中工作正常,例如:

代码语言:javascript
复制
 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实体模型“中,因为edml是"ObjectContext”,lqml是"DataContext“。

提前谢谢你,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-11 17:11:53

实体框架中的CompiledQuery ( http://msdn.microsoft.com/en-us/library/bb896297.aspx )仅支持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年6月CTP的情况下,可以避免显式编译,因为自动编译的LINQ查询是在EF 2011年6月CTP:http://blogs.msdn.com/b/efdesign/archive/2011/06/30/auto-compiled-linq-queries-entity-framework-june-2011-ctp.aspx中实现的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8789280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档