从LINQ到SQL获取SQL查询?
我有一个查询,我通过byte[]
作为参数。 我试图从SQL查询中取出它并在pipe理工作室中运行该查询来进行debugging。 我如何从中提取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);
在debugging器将鼠标hover在commiteeMember
variables上 – 它将显示生成的SQL查询:
这是ToString()
返回查询的内容。 您可以通过调用ToString手动获取相同的生成的SQL查询:
string sql = committeeMember.ToString();
这个重写的方法在内部调用ObjectQuery.ToTraceString()
,它将返回将在数据源上运行的命令。
也可以使用SQL事件探查器或entity framework事件探查器查看执行了哪个SQL查询。
顺便说一句,LINQ to SQL不是entity framework。 如果是前者,你可以设置[yourDataContext].Log = Console.Out
(或者其他一些stream式 [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();
现在你可以做committeeMemberQuery.ToString()
但是你不会得到参数信息(你将DataContext.Log = Console.Out
但是再一次,这不是entity framework,它是LINQ to SQL。
- 编译dynamicexpression式所需的一个或多个types无法find。 您是否缺less对Microsoft.CSharp.dll和System.Core.dll的引用?
- 更改值时禁用.NET进度栏animation?
- 什么时候可以捕获OutOfMemoryException以及如何处理它?
- 将parameter passing给模板types的C#genericsnew()
- 在C#DllImport中使用32位或64位DLL
- 如何以编程方式检查(parsing)TSQL语句的有效性?
- 为什么编译错误“使用未分配的本地变量”?
- LINQ中的DefaultIfEmpty
- 用MVVM处理WPF中的对话框