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

前端之家收集整理的这篇文章主要介绍了当使用Entity Framework CTP 5“代码”时,如何获得原始SQL基础的LINQ查询?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在“仅代码”模式中使用了实体框架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)功能.

猜你在找的MsSQL相关文章