【问题标题】:In Linq to Entities can you convert an IQueryable into a string of SQL?在 Linq to Entities 中,您可以将 IQueryable 转换为 SQL 字符串吗?
【发布时间】:2017-07-20 19:51:05
【问题描述】:

例如。

var result = myObject.Where(x => x.prop == 5);

string s = result.toSQL();

结果:

s"SELECT * FROM [myObjects] WHERE prop = 5"

【问题讨论】:

标签: entity-framework linq-to-entities


【解决方案1】:

如果是IQueryable/ObjectQuery,您可以使用ToTraceString。如果是 IDbSet/DbSet 可以直接使用ToString

【讨论】:

    【解决方案2】:

    使用 EF 6 我无法让 .ToString() 返回类似以下内容的 SQL:

       db.Entry(parent)
       .Collection(p => p.Children)
       .Query()
       .Where(c => c.Active)
       .Load();
    

    然后我记得您可以使用以下命令将其记录到调试输出:

    db.Database.Log = (entry) => System.Diagnostics.Debug.WriteLine(entry);
    

    刚刚在加载查询之前设置(duh):)

    db这里是一些 DbContext 派生类的实例。

    【讨论】:

      猜你喜欢
      • 2013-02-28
      • 2011-11-16
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多