要通过Entity Framework Plus生成SQL查询吗?

时间:2019-05-10 13:58:42

标签: entity-framework-6 entity-framework-plus

几个小时以来,我一直在享受实体框架6上Entity Framework Plus的功能,尤其是IncludeFilter

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

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

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

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

有没有一种方法可以为“ IncludeFilter”查询以及传统查询生成SQL?

我知道我可以使用足够的分析工具在SQL Server本身上获得它,但我希望能够在EF的代码端实现它。

3 个答案:

答案 0 :(得分:1)

  

有没有一种方法可以为“ IncludeFilter”查询以及传统查询生成SQL?

不,目前没有办法。

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

(我是所有者)

编辑:回答评论

  

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

我不会称其为优化。它们是由Entity Framework生成的,对我们而言并没有任何真正的修改。

  • IncludeFilter:创建一个非常大的查询,就像Include在EF6中所做的一样
  • IncludeOptimized:与EF Core中的Include类似地创建多个小型查询

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

//subclass
public class D extends BaseClass
{
    public D()
    {
    }

    public void print()
    {
        System.out.println(“hello D”);
    }
}