Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在何处查找转换为Sql的Linq到实体查询_C#_Sql Server_Entity Framework_Linq_Asp.net Web Api - Fatal编程技术网

C# 在何处查找转换为Sql的Linq到实体查询

C# 在何处查找转换为Sql的Linq到实体查询,c#,sql-server,entity-framework,linq,asp.net-web-api,C#,Sql Server,Entity Framework,Linq,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; } } 您可以在objs上调用ToString()方法。这将导致调用

我希望以编程方式获取经过翻译的Linq查询,并使用Sql语法做一些事情

假设这是我的代码:

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

您可以在
objs
上调用
ToString()
方法。这将导致调用返回已执行SQL的
ToTraceString

string sql = objs.ToString();

我认为这些帖子可以帮助你:

(一)

(二)

几个例子(来自上面):

有关
.ToTraceString()
的文档可在此处找到:


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


不要得到你想做的。为什么要从Linq生成SQL查询?是的,我也不明白为什么要这样做,可以用代码设置查询,为什么要更改实际查询?从ToString返回的SQL是否总是一个没有参数的完整SQL语句?如果我使用.Where(c=>c==“abc';delete from othertable;”),那么生成的sql能保证sql注入安全吗?这是一个很小但很重要的概念。有一半的情况下,我们会启动sql查询配置文件,以获取在sql server实例上触发的查询文本。好极了!如果objs=Context.Objexts.Where(m=>m.Id>10).Sum(m=>m.num),那么如何知道翻译后的sql@Jaco?
string sql = objs.ToString();
var sql = ((System.Data.Objects.ObjectQuery)objs).ToTraceString();
var sql = objs.ToString();
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... 
}