实体框架编译查询

rea*_*ers 4 linq entity-framework

如何将此实体框架LINQ查询编写为编译查询?

var context = new SlxDbContext();
var userSet = context.Set<User>();
User user = userSet.Where(x => x.UserName == "gstrader").First();
Run Code Online (Sandbox Code Playgroud)

Gia*_*tti 5

当您使用DbContext API时,无法使用CompiledQuery; CompiledQuery仅适用于ObjectContext.如果您使用的是Code First,则最有可能使用DbContext API.Microsoft建议您在新项目中使用DbContext API,即使您将使用Database First或Model First模型也是如此.

但是如果你使用EF5,它会带来自动编译的查询,它的工作方式与CompiledQuery完全不同.EF5不是编写代码来编译每个查询,然后根据需要调用每个查询,而是将生成的SQL作为后台进程缓存,然后在执行任何查询时在缓存中搜索已编译的查询.

看到:

http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspx

http://www.devproconnections.com/article/entity-framework/entity-framework-5-143875