实体框架命名查询

本文关键字:查询 框架 实体 | 更新日期: 2023-09-27 18:09:50

我们正在分析Azure的"查询性能洞察"来寻找昂贵的查询,问题是,没有办法将SQL生成与实体框架查询联系起来。

是否有任何扩展方法或其他方法来做这样的事情:

SQL生成:

-- BlahMethod
SELECT Id
FROM Table1

实体框架cmd:

Context.Table1.Naming("BlahMethod").ToList()

或者更好:

Context.Table1.ToList() // intercept sql generated by EF and put through reflection the Method and Namespace "MyAssembly.Foo.MyMethodName"
SQL生成:

-- MyAssembly.Foo.MyMethodName
SELECT Id
FROM Table1

实体框架命名查询

是的,看看这篇文章记录和拦截数据库操作。

它可以像使用Console一样简单。写:

using (var context = new BlogContext()) 
{ 
    context.Database.Log = Console.Write; 
    // Your code here... 
}

或者您可以使用日志类:

  using (var db = new MyDBContext())
            {
                db.Database.Log = s => Log.TraceVerbose("DB Context:{0}", s);
...