加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

当使用Entity Framework CTP 5“代码”时,如何获得原始SQL基础的

发布时间:2020-12-12 16:37:34 所属栏目:MsSql教程 来源:网络整理
导读:我在“仅代码”模式中使用了实体框架CTP5.对于从数据库返回的对象,我正在运行一个LINQ查询,因为查询运行速度非常慢.有什么办法可以得到从查询生成的SQL语句? Topic currentTopic = (from x in Repository.Topics let isCurrent = (x.StoppedAt = x.StartedAt
我在“仅代码”模式中使用了实体框架CTP5.对于从数据库返回的对象,我正在运行一个LINQ查询,因为查询运行速度非常慢.有什么办法可以得到从查询生成的SQL语句?
Topic currentTopic =
    (from x in Repository.Topics
     let isCurrent = (x.StoppedAt <= x.StartedAt || (x.StartedAt >= currentTopicsStartedAtOrAfter))
     where x.Meeting.Manager.User.Id == user.Id && isCurrent
     orderby x.StartedAt descending
     select x).FirstOrDefault();

“Repository”属性是DbContext的后代.

这有点复杂,因为EF不能在对象上使用我的帮助方法,所以我直接在查询中指定逻辑.

那么,有没有什么办法可以转储由LINQ查询生成的SQL(例如到我的log4net存储库)?

解决方法

我可以使用SQL Trace来直接获取在服务器上运行的查询,也可以使用 ANTS Performance Profiler中的Windows事件跟踪功能(SQL Profiling)功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读