2009年8月9日 星期日

抓出Entity Framework的SQL指令

最近在研究Entity Framework..發現EF真的蠻不錯用的..尤其在Linq熟得時候..EF就可以很得心應手..今天在寫的時候..覺得EF丟出的指令還是要試著去了解..因為有時複雜的Linq to Entity還是需要看看怎樣寫才能丟出有效率的SQL Statement..下面就是簡單的兩個方法去抓出SQL Statement..
第一種方法
using (NORTHWNDModel.NORTHWNDEntities db = new NORTHWNDModel.NORTHWNDEntities())
{
var aaaa = db.Orders.Select(a => new { a.ShipName, a.ShipCity }).Take(10);
ObjectQuery oq = aaaa as ObjectQuery;
if (oq != null)
{
string SQLStr = oq.ToTraceString();
Response.Write(SQLStr);
}
}
第二種方法
using (NORTHWNDModel.NORTHWNDEntities db = new NORTHWNDModel.NORTHWNDEntities())
{
var aaaa = db.Orders.Select(a => new { a.ShipName, a.ShipCity }).Take(10);
MethodInfo mi = aaaa.GetType().GetMethod("ToTraceString");
if (mi != null)
Response.Write(mi.Invoke(aaaa, null).ToString());
}

第一種方法效率好很多..如果可以就用第一種方法ㄅ

轉http://bibby.be/search?updated-max=2009-05-19T22%3A30%3A00%2B08%3A00&max-results=7

沒有留言:

張貼留言