【发布时间】:2015-11-23 17:24:51
【问题描述】:
我正在使用 ASP.Net4.5.1 和 EF6.0 代码优先方法。
我意识到查询需要相当长的时间来执行。我使用 EF Profiler 来检查查询并微调查询。
我用谷歌搜索并开始了解编译 Linq。
这些是我得到的链接。
- https://stackoverflow.com/questions/32175040/how-to-cache-queries-in-ef-code-first
- How do I precompile an Entity Framework Code-First Query?
- Entity Framework Compiled Query
但没有一个能解决我的担忧。
假设我有以下查询。
public IEnumerable<Student> GetStudents()
{
using(DbContext db = new DbContext()
{
IQueryable<Student> query = (from c in db.Students
where c.Hobby== "Hockey"
select c);
IEnumerable<Student> students= query.toList<Student>();
return students;
}
}
现在如何缓存查询计划或编译此 Linq 以提高性能?
这里还要问一个问题,EF 比原生 SQL 慢吗?
我更喜欢使用EF/ORM,是不是正确的选择?
【问题讨论】:
-
我们是在谈论第一次查询执行(通常包括视图生成时间),还是一般的查询执行?
-
@tschmit007 查询执行
-
此代码来自您的应用还是与您的应用无关的示例代码?根据您的一些回复,您似乎没有发布真正的代码。如果是这样的话,就很难提供帮助了。
标签: c# asp.net asp.net-mvc entity-framework sql-server-2008