Jam*_*123 39 .net c# linq-to-sql
我有一个查询,我byte[]
作为参数传递.我试图从中获取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);
Run Code Online (Sandbox Code Playgroud)
Ser*_*kiy 75
在调试器commiteeMember
中将鼠标悬停在变量上 - 它将显示生成的SQL查询:
这是ToString()
返回查询的内容.您可以通过调用ToString手动获取相同的生成SQL查询:
string sql = committeeMember.ToString();
Run Code Online (Sandbox Code Playgroud)
这个重写的方法在内部调用ObjectQuery.ToTraceString()
哪个返回将在数据源上运行的命令.
您还可以使用SQL事件探查器或实体框架事件探查器查看执行了哪个SQL查询.
Mar*_*wul 15
顺便说一句,LINQ to SQL不是实体框架.如果是前者,则可以设置[yourDataContext].Log = Console.Out
(或其他一些流编写器)并获取查询.
在您的查询中,请考虑按如下方式编写它以便能够执行此操作ToString
:
var committeeMemberQuery =
db.Committee_Member.*WHERE*
(x =>
x.Customer_Number == activity.Contact.Number
&& x.Position_Start_Date.Value.Year == activity.EndDate
&& x.Committee_Id == activity.Committee.Id && x.Cancelled != 1
);
var committeeMember = committeeMemberQuery.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
现在你可以做committeeMemberQuery.ToString()
但是你不会得到参数信息(你将DataContext.Log = Console.Out
再次使用,那不是实体框架,它是LINQ to SQL.
归档时间: |
|
查看次数: |
70226 次 |
最近记录: |