如何查看SQL实体框架SaveChanges正在生成什么?

时间:2011-04-25 18:38:25

标签: entity-framework-4

有时候我想看看EF正在生成什么SQL。例如,我查询一个对象,修改它并将其保存回来:

var context = new EntityModel();
var MyObj = context.FooTable.First(o => o.id = SearchId);
MyObj.Property = SomeValue;
context.SaveChanges();

我得到一些愚蠢的错误,如果我能看到SQL,我可能会排除故障。我远非EF专家,它也会帮助我学习。

更新我认为我真正想知道的是:在如上所示的自动跟踪EF对象中,如何使用ToConraceString()查看什么是在SaveChanges()中执行?

3 个答案:

答案 0 :(得分:2)

我使用免费SQL Express Profiler

答案 1 :(得分:1)

这听起来很简单,但并不是因为ADO.NET团队不知何故忘记包含这样的basich功能。检查EF Tracing provider。这可以帮助您记录SQL命令。否则,请使用SQL事件探查器,并了解在建立新跟踪时如何使用过滤器。

答案 2 :(得分:0)

EF Profiler是一个很好的工具 - 它不是免费的:(

相关问题