实体框架 - 使用toTraceString查看Sql

时间:2013-04-14 18:43:25

标签: entity-framework logging entity-framework-5 generated-sql

我正在尝试查看Entity Framework 5.0从实体查询生成的生成的sql。在整个网络(for example)中,每个人都说要将 IQuerable 对象转换为 ObjectQuery 对象,然后使用toTraceString()方法返回生成的查询。

但是我一直收到无效的案例例外:

    Unhandled Exception: System.InvalidCastException: Unable to cast object of type
'System.Data.Entity.Infrastructure.DbQuery`1[System.String]' to type 'System.Data.Objects.ObjectQuery'.

在Entity Framework 5中执行此操作的新方法是什么?

2 个答案:

答案 0 :(得分:12)

您可以使用.ToString()从IQueryable查看生成的SQL,例如

var query = context.People.Where(x => x.DomainId == 1);
Console.WriteLine(query.ToString());

答案 1 :(得分:1)

您使用的是SQL Server吗?如果是这样,请尝试使用分析器。工具 - > Management Studio的开发版本中的SQL Server Profiler