如何获取实体框架生成的sql [重复]

Posted

技术标签:

【中文标题】如何获取实体框架生成的sql [重复]【英文标题】:How to get the sql generated by the entity framework [duplicate] 【发布时间】:2011-01-15 15:19:13 【问题描述】:

如何获取实体框架查询生成的sql脚本? 即如果我写

entityDataDontext.table1.Where(r => r.primarykey == 1).First();

那么我怎样才能得到应该有点像这样的SQL:

select * from table1 where primarykey = 1

提前致谢:)

【问题讨论】:

请看重复:How do I view the SQL generated by the entity framework ?SQL tracing LINQ to Entities var trace = ((ObjectQuery<T>)query).ToTraceString() 我想在@RPM1984 中添加评论,要针对匿名类型使用此功能,您将使用ObjectQuery 而不是ObjectQuery<T> 【参考方案1】:

当您使用 SQL Server 作为后端数据库时,SQL Server Profiler 始终是准确查看哪些 SQL 语句被发送到您的数据库以进行处理的最佳工具。

有关背景信息,请参阅Introducting SQL Server Profiler。

【讨论】:

【参考方案2】:

我强烈推荐 MiniProfiler: http://miniprofiler.com/

【讨论】:

【参考方案3】:

除了使用 SQL Server Profiler 之外,您还可以尝试 Entity Framework Profiler,它可以做到这一点以及更多。

它是付费的,有 30 天的试用期。

【讨论】:

我之前用过这个,非常好的工具。唯一的问题是它是付费的:(

以上是关于如何获取实体框架生成的sql [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用实体框架在 Sql Server Express 中获取下一个序列号?

实体框架查询以获取子项[重复]

如何更改实体框架为日期时间生成 SQL 精度的方式

实体框架 SQL 查询

如何使用实体框架获取记录计数匹配谓词

如何从实体框架 6 中的 Auditlog 实体获取 id