我有這個C#L2S代碼:LINQ查詢檢索整個記錄,而不是一個領域
Table<ERPRaw> linqRawFile = db.GetTable<RawFile>();
var linqNameList =
from row in linqRawFile.AsEnumerable()
select row.fileName;
currentFileNameList = linqNameList.ToArray();
它應該只讀文件名場,但是當我在SQL Server Profiler中檢查,我看到這個查詢觸發完整的記錄加載。這些字段包含文件二進制數據,因此全表加載需要相當長的時間。僅檢索fileName字段只需要幾毫秒。
什麼是正確的方式來檢索作爲字符串數組中的RawFile的只fileName字段?我假設linq框架現在全部加載每個RawFile記錄,因爲它沒有看到我將只從列表中檢索到fileName屬性。
也許我必須構建查詢而不參考linqRawFile呢?那麼這是否會忽視linq在項目中引入的原因,以便將數據庫層抽象出來?
可能是由於'.AsEnumerable()'' – Ric
VAR linqNameList =(從行linqRawFile選擇行。文件名).ToList();' – markpsmith