我一直在好奇Dapper(或者其他ORMs)如何與LINQ結合處理對象檢索。Dapper在Linq操作之前從數據庫請求完整對象嗎?
如果我有這樣一個類:
public static IEnumerable<SitePage> GetAll()
{
using (IDbConnection cn = new SqlConnection(g.Global.CONX))
{
cn.Open();
return cn.GetAll<SitePage>();
}
}
和我建立這樣的查詢:
var result = SitePage.GetAll().Select(c=> new { c.id, c.PageUrl, c.ParentId });
我很好奇,如果在後臺,整個記錄集獲取包括拉所有其他列(可能包含非常大的變種),或者Dapper從這個查詢中理解的僅僅是拉入我從sql db請求的列中?我意識到這是一種新手,但我想更好地理解Dapper/LINQ交互。
在這裏發佈了一個類似的問題:selecting-specific-columns-using-linq-what-gets-transferred,但我不確定是否完全回答。海報有2個問題,也沒有使用我通常喜歡的lambda表達式。
對此的回答會讓我頭腦發熱(並且很可能會改變我的編碼方式,因爲我一直保持謹慎,並且覺得我通過顯式sql編寫了太多的代碼)。
請參閱。 http://stackoverflow.com/a/35956207/5779732 –
@A_J您提供的鏈接也非常有幫助,並且是一個很好的提醒,因爲我認爲我曾經見過它。 – secretwep