哪些版本的Entity Framework支持编译查询?

时间:2013-08-16 19:58:52

标签: c# linq entity-framework

我已经多次提到你应该使用带有Entity Framework的编译查询,因为它提高了效率,就像在SQL Server中编译和缓存的存储过程一样。

显然,有两个版本的编译查询,第一个是CompiledQuery,据我所知,只适用于ObjectContext和自动编译的查询,它们同时适用于DbContextObjectContext

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

1 个答案:

答案 0 :(得分:5)

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

  

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

自.NET 3.5 sp1以来,CompiledQuery对手动编译查询的支持已经存在。