我使用EF 6.1與Visual Studio 2013的自定義對象的最佳實踐我有一個視圖模型LINQ查詢在EF 6.1
public class SaprePartsViewModel
{
public long ItemID { get; set; }
public string ItemCode { get; set; }
public string ItemName { get; set; }
}
而且還具有數據庫表SapreParts
具有相同的列名。
我已經完成了這兩種方法來獲取自定義對象
i。
var sqlQueryList = db.Database.SqlQuery<SaprePartsViewModel>(
"select ItemID,ItemCode,ItemName from SpareParts").ToList();
ii。
var linqQueryList = db.SpareParts.Select(x => new SaprePartsViewModel
{
ItemID = x.ItemID,
ItemCode = x.ItemCode,
ItemName = x.ItemName
}).ToList();
這兩個查詢工作正常。但我的問題是哪一個使用?哪個是最佳的性能?
我認爲由於涉及到如此多的度量標準,我認爲性能是一個如此困難的話題。對於上面的簡單查詢,顯而易見的答案是使用EF約定,因爲您可以免費獲得智能感知,並且使測試變得輕而易舉。根據sql查詢的靜態字符串會隨着時間的推移而中斷,查詢的主體也會隨着時間的推移而改變,所以你有一個移動的目標選項我去--iiii除非你有可測量的問題 –
賽跑跑道上的兩輛車找到哪一個更快移動 –
ShekharPankaj - 表現不僅僅是速度(imho)。這也是關於清晰的目的和易於維護。在蘇格蘭有一句老話:*速度更快,速度更快*。簡而言之,就是要平衡從查詢中減少幾毫秒的代價,同時讓工作代碼出門並易於維護。 –