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

use*_*396 2 sql linq translation entity-framework

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

Ahm*_*eed 5

您可以使用ObjectQuery.ToTraceString方法:

var query = ...
string sql = ((System.Data.Objects.ObjectQuery)query).ToTraceString();
Run Code Online (Sandbox Code Playgroud)

但是,这种方法的一些缺点是它只显示查询,而不是更新/插入/删除.此外,它不会透露使用的参数.

如果您需要从查询中获得尽可能详细的详细信息,请使用SQL Server Profiler作为Neil建议.

Julie Lerman在MSDN上有不同选项的好文章:在实体框架中分析数据库活动.她提到: