例如。在Linq to Entities中,你可以將IQueryable轉換爲SQL字符串嗎?
var result = myObject.Where(x => x.prop == 5);
string s = result.toSQL();
結果:
s
是"SELECT * FROM [myObjects] WHERE prop = 5"
例如。在Linq to Entities中,你可以將IQueryable轉換爲SQL字符串嗎?
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派生類的實例。
看看http://stackoverflow.com/questions/3980874/get-tracestring-for-your-business-objects-in-the-entity-framework – Eranga 2012-07-05 11:07:54