我怎么知道EF将Linq查询翻译成什么?

时间:2011-12-19 15:17:49

标签: sql linq entity-framework translation

在许多网站/博客上,我注意到有人想要解释linq机制,编写Linq查询并为此提供SQL翻译。如何获得我自己的查询翻译? 我在VS2010中使用EF .Net 4.0。是否有地方(财产或甚至某些第三方工具)我可以看到他们被翻译成什么?

3 个答案:

答案 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。