在哪里可以找到已翻译的Linq to Entity查询到Sql

Mas*_*ani 8 c# linq sql-server entity-framework asp.net-web-api

我想以编程方式获取翻译的Linq查询并使用该Sql语法执行一些操作.

假设这是我的代码:

public class MyApiController:ApiController
{
   public IQueryable<object> Get()
   {
      var objs=Context.Objexts.Where(m=>m.Id>10);
      return objs;
   }
}
Run Code Online (Sandbox Code Playgroud)

我想找到并获得如下的Sql语法:

SELECT * FROM dbo.Objexts where Id > 10
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 8

您可以调用该ToString()方法objs.这将导致调用返回已执行SQL 的ToTraceString 方法:

string sql = objs.ToString();
Run Code Online (Sandbox Code Playgroud)


Jul*_*eda 6

如果您使用的是Entity Framework 6的另一个选项是使用新功能来记录什么是发生的,您可以获得t-sql和查询时间:

记录和拦截数据库操作

using (var context = new BlogContext()) 
{ 
    context.Database.Log = Console.Write; //here, you can write this info to a text file for example.

    // Your code here... 
}
Run Code Online (Sandbox Code Playgroud)