在许多网站/博客上,我注意到有人想要解释linq机制,编写Linq查询并为此提供SQL翻译。如何获得我自己的查询翻译? 我在VS2010中使用EF .Net 4.0。是否有地方(财产或甚至某些第三方工具)我可以看到他们被翻译成什么?
答案 0 :(得分:5)
您可以使用ObjectQuery.ToTraceString方法:
var query = ...
string sql = ((System.Data.Objects.ObjectQuery)query).ToTraceString();
但是,这种方法的一些缺点是它只显示查询,而不是更新/插入/删除。此外,它不会显示使用的参数。
如果您需要从查询中获取尽可能详细的详细信息,请将SQL Server Profiler用作Neil suggested。
Julie Lerman在MSDN上有一篇不错的文章:Profiling Database Activity in the Entity Framework。她提到:
答案 1 :(得分:4)
最简单的方法是使用SQL事件探查器。在调试方面,我发现这是一个真正的神派。
答案 2 :(得分:0)
您可以使用LinqPad,您可以查询您的实体模型并查看生成的SQL。