Entity framework 实体框架执行的精确sql查询
这个问题似乎很清楚,但我要补充一个例子Entity framework 实体框架执行的精确sql查询,entity-framework,Entity Framework,这个问题似乎很清楚,但我要补充一个例子 using (var context = new MyEntities()) { if(context.mytable.Any(row => row.myfield == 2)) { // do something here } } 我不熟悉实体框架。 我不知道如何检查执行的确切sql查询?如果您连接到sql Server,可以使用sql探查器获取生成的sql。您可以在此处找到类似的问题: 总而言之,您的选择是: SQL S
using (var context = new MyEntities())
{
if(context.mytable.Any(row => row.myfield == 2))
{
// do something here
}
}
我不熟悉实体框架。
我不知道如何检查执行的确切sql查询?如果您连接到sql Server,可以使用sql探查器获取生成的sql。您可以在此处找到类似的问题: 总而言之,您的选择是:
- SQL Server探查器
有关详细信息,请参见参考问题。根据上述答案状态,您可以使用SQL Profiler、LINQPad、EF Profiler等 另一个鲜为人知的(有些人可能会说是懒惰的)技巧是使用
ObjectQuery.ToTraceString()
扩展方法
只需将查询转换为ObjectQuery
var query=context.mytable.Any(row=>row.myfield==2));
var trace=((ObjectQuery)query.ToTraceString();
它将吐出要执行的SQL
对于最后一分钟的日志记录非常方便
var query = context.mytable.Any(row => row.myfield == 2));
var trace = ((ObjectQuery<MyTable>)query).ToTraceString();