0

典型地,人們可以使用以下查詢檢索來自主鍵值的記錄(或我們可以使用Find(),視情況而定):實體框架6:主鍵的ToString()相比

using (var context = new SomeContext()) 
{ 
    entity = context.Users.SingleOrDefault(x => x.Id == id); 
} 

執行相同查詢的影響是什麼,但ToString()對主鍵值有什麼影響?

像這樣:

using (var context = new SomeContext()) 
{ 
    entity = context.Users 
        .SingleOrDefault(x => x.Id.ToString() == id.ToString()); 
} 
+1

爲什麼要在那裏?爲什麼不多次調用'.ToString()',並追加'''''好好衡量?更嚴重的一點是,你應該能夠追蹤沒有任何問題的SQL,並且自己看看是否有區別。此外,是否有差異可能取決於「Id」的類型。 – hvd 2014-09-27 15:24:48

+0

是的,爲什麼問這裏,你可以做一個簡單的基準?我們甚至無法回答你的問題。 – 2014-09-27 20:52:57

回答

1

在我看來,如果你有一個像100萬元的表格查詢可以採取額外的1秒執行。幾乎與雙倍相同

convert(nvarchar(36), Id) 

+值比較。你可以想象短路的char比較x36次。

+0

您可能想嘗試一下http://www.hibernatingrhinos.com/products/efprof – Margus 2014-09-27 15:31:29