基于this和this,我正在执行以下操作以获取 Entity Framework 5.0 生成的 SQL
var query = from s in db.ClassesDetails
where s.ClassSet == "SetOne"
orderby s.ClassNum
select s.ClassNum;
var objectQuery = (System.Data.Objects.ObjectQuery)query; // <= problem!
var sql = objectQuery.ToTraceString();
但是在第二行我得到以下异常:
Unable to cast object of type 'System.Data.Entity.Infrastructure.DbQuery`1[System.Int16]' to type 'System.Data.Objects.ObjectQuery'.
自从发布了这些 SO 答案后,有什么变化吗?我需要做什么才能将查询作为字符串?我们正在针对 Azure SQL 运行,因此无法运行通常的 SQL 分析器工具 :(