【问题标题】:Which versions of the Entity Framework support compiled queries?哪些版本的实体框架支持编译查询?
【发布时间】:2013-08-16 19:58:51
【问题描述】:

我已经看到它多次提到你应该在实体框架中使用编译查询,因为它可以提高效率,就像在 SQL Server 中编译和缓存存储过程一样。

显然,编译查询有两个版本,第一个是CompiledQuery,据我了解,它只适用于ObjectContext,而自动编译查询同时适用于DbContextObjectContext

那么编译查询在哪些版本的 EF 中工作以及在什么 API 上下文中工作?

【问题讨论】:

    标签: c# linq entity-framework


    【解决方案1】:

    .NET 4.5 是第一个支持自动编译和缓存的版本。来自Compiled Queries 文档:

    从 .NET Framework 4.5 开始,自动缓存 LINQ 查询。但是,您仍然可以使用已编译的 LINQ 查询来降低以后执行的成本,并且已编译的查询可以比自动缓存的 LINQ 查询更有效。请注意,将 Enumerable.Contains 运算符应用于内存集合的 LINQ to Entities 查询不会自动缓存。也不允许在编译的 LINQ 查询中参数化内存中的集合。

    CompiledQuery 对手动编译查询的支持从 .NET 3.5 sp1 开始就存在了。

    【讨论】:

    • 好的,我知道了,但是是否有一个图表可以将 EF 的版本交叉引用到这些 LINQ 功能。例如,EF 4.1 Code First 不是主要版本,我假设与 EF 4.0 绑定到相同的 .NET Framework 版本,对吧?但是 EF 4.1 是否对编译查询有不同的支持,因为这是不同建模方法的第一个版本?
    • 谢谢,这更符合我正在寻找的内容,感谢。抱歉,如果我的问题含糊不清或令人困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 2011-06-03
    • 2018-12-25
    • 2016-11-04
    • 1970-01-01
    相关资源
    最近更新 更多