1

几个小时以来,我一直在享受Entity Framework Plus的功能而不是 Entity Framework 6,尤其是它的IncludeFilter

使用常规的 Entity Framework 6,我可以简单地调用 IQueryable 上的 ToString() 来轻松获取将在 DB 服务器上实际处理的 SELECT 查询。

但是使用 EF+,当我应用 IncludeFilter 时,我只会得到:

 Z.EntityFramework.Plus.QueryIncludeFilterParentQueryable`1[MyRecord]

因为ToString()在 EF+ 中似乎没有以同样的方式重载。

有没有办法为“IncludeFilter”查询以及经典查询生成 SQL?

我知道我可以使用适当的分析工具在 SQL 服务器本身上获取它,但我希望能够在 EF 的代码端完成它。

4

3 回答 3

2

有没有办法为“IncludeFilter”查询以及经典查询生成 SQL?

不,目前没有办法。

它可能会稍后出现,但目前,该库不提供此功能。

(我是楼主)

编辑:回答评论

我主要担心的是知道生成的查询是否经过优化

我不会称它们为优化的。它们是由实体框架生成的,在我们这边没有真正修改过。

  • IncludeFilter:像Include在 EF6 中一样创建一个非常大的查询
  • IncludeOptimized:像Include在 EF Core 中一样创建多个小查询
于 2019-05-11T11:27:42.730 回答
0

您可以使用当前上下文的日志来跟踪在此实例下执行的所有请求

        context.Database.Log = s => Console.WriteLine(s);
于 2020-03-22T22:36:37.483 回答
0

可能有点晚了,但您可以使用 SQL Server Profiler 来跟踪数据库事件(例如,查询)。使用 SQL Tuning 配置文件,它将跟踪您的查询,您可以在 SQL 中查看它们。

于 2020-02-06T10:04:18.280 回答