0

我们有一个性能问题,它缩小到我们的应用服务器。一种可能的怀疑是,在某些情况下,编译 Linq2Entity 查询的时间变得过长。我们正在扩展我们的日志系统以包含已执行的 sql。我打算使用的.ToString()方法IQueriable来获取sql。

  1. 这会强制 EF 编译查询吗?
  2. IQueriable当我们枚举并避免重新编译查询时,EF 会使用这个计划吗?
  3. 这有什么缺点吗?
4

1 回答 1

1
  1. 是 - EF 将通过查询管道(包括生成实际 SQL 查询的提供程序)运行您的查询,
  2. 这取决于 - 如果您在 .NET Framework 4.5 上使用 EF,查询会自动编译和缓存(有关更多详细信息,请参阅性能注意事项)。
  3. 如果查询被编译和缓存,可能不会。
于 2013-02-03T06:36:29.367 回答