获得SQL查询的LINQ到SQL?SQL、LINQ

2023-09-02 02:01:31 作者:执念致伤成痛,

我有我传递字节[] 作为参数的查询。我试图让SQL查询出它和运行管理工作室,查询调试。我怎样才能提取SQL语句从它?

  committeeMember =
           db.Committee_Member.FirstOrDefault(X => x.Customer_Number == activity.Contact.Number
           &功放;&安培; x.Position_Start_Date.Value.Year == activity.EndDate
           &功放;&安培; x.Committee_Id == activity.Committee.Id和放大器;&安培; !x.Cancelled = 1);
 

解决方案

在调试器悬停鼠标移到 commiteeMember 变量 - 它会显示生成的SQL查询:

linq to sql 多表联合查询

这是什么的ToString()返回查询。您可以通过手动调用toString得到相同的生成SQL查询:

 字符串SQL = committeeMember.ToString();
 

此重写的方法内部调用ObjectQuery.ToTraceString()它返回,将运行在数据源的命令。

你也可以使用SQL事件探查器或实体框架事件探查器查看被执行的SQL查询。

I have a query which I am passing byte[] as a parameter. I am trying to get the SQL query out of it and run that query in management studio to debug. How can I extract the SQL statement from it?

 committeeMember =
           db.Committee_Member.FirstOrDefault(x => x.Customer_Number == activity.Contact.Number
           && x.Position_Start_Date.Value.Year == activity.EndDate
           && x.Committee_Id == activity.Committee.Id && x.Cancelled != 1);

解决方案

In debugger hover mouse over commiteeMember variable - it will show generated SQL query:

This is what ToString() returns for query. You can get same generated SQL query manually by calling ToString:

string sql = committeeMember.ToString();

This overridden method internally calls ObjectQuery.ToTraceString() which returns commands that will run on data source.

Also you can use SQL Profiler or Entity Framework Profiler to see which SQL query was executed.