例如。
var result = myObject.Where(x => x.prop == 5);
string s = result.toSQL();
结果:
s
是"SELECT * FROM [myObjects] WHERE prop = 5"
例如。
var result = myObject.Where(x => x.prop == 5);
string s = result.toSQL();
结果:
s
是"SELECT * FROM [myObjects] WHERE prop = 5"
如果是IQueryable
/ObjectQuery
你可以使用ToTraceString
. 如果是 IDbSet/DbSet 可以ToString
直接使用。
使用 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 派生类的实例。