有时候我想看看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()中执行?
答案 0 :(得分:2)
我使用免费SQL Express Profiler
答案 1 :(得分:1)
这听起来很简单,但并不是因为ADO.NET团队不知何故忘记包含这样的basich功能。检查EF Tracing provider。这可以帮助您记录SQL命令。否则,请使用SQL事件探查器,并了解在建立新跟踪时如何使用过滤器。
答案 2 :(得分:0)
EF Profiler是一个很好的工具 - 它不是免费的:(