如何查看EF 生成的sql语句

fayxue 2017-05-19 05:21:44
框架是用的EF,codefirst
设断点只能看到一个大概的SQL,条件语句里的值都参数化了 并不能看到实际的值 或者说最终执行的SQL。

public IQueryable<T> FindList<S>(Expression<Func<T, bool>> whereLamdba, bool isAsc, Expression<Func<T, S>> orderLamdba)
{
var _list = nContext.Set<T>().Where<T>(whereLamdba);
if (isAsc) _list = _list.OrderBy<T, S>(orderLamdba);
else _list = _list.OrderByDescending<T, S>(orderLamdba);
return _list;
}


如上代码,如何获取到最终执行的sql语句。
不使用Profiler
...全文
3421 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
大然然 2017-07-03
  • 打赏
  • 举报
回复
还是ado.net好
GT7466 2017-06-29
  • 打赏
  • 举报
回复
推荐MiniProfiler插件
fifexue 2017-06-29
  • 打赏
  • 举报
回复
SQLServer Profiler或者c#断点IQueryable.tostring()
soulonelone 2017-05-23
  • 打赏
  • 举报
回复
使用SQLServer Profiler
ycproc 2017-05-23
  • 打赏
  • 举报
回复
紫魂一号 2017-05-22
  • 打赏
  • 举报
回复

efContext.Database.Log = (info) =>
            {
                System.Diagnostics.Debug.WriteLine(info);
            };
监控info, 你可以看到对应sql 执行的所有消息。。
zhujinqiang 2017-05-22
  • 打赏
  • 举报
回复
引用 2 楼 hanjun0612 的回复:
Entities db = new Entities();
            var q = db.WD_CompanyInfo.Where(x => x.id <= 1000);
Console.WriteLine(q.ToString());
正怒月神 版主 2017-05-19
  • 打赏
  • 举报
回复
Entities db = new Entities();
            var q = db.WD_CompanyInfo.Where(x => x.id <= 1000);
Console.WriteLine(q.ToString());
xiaojunjor 2017-05-19
  • 打赏
  • 举报
回复
打断点能看到语句,值的话,看输出窗口调试里,在语句下面会有各个参数的值是多少
就像这样

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧