2014-02-28 18 views
0

這是我的Linq代碼來抓取First id = 1的Byte ARRAY值.Id是一個Distinct值,所以不會有任何重複。 linq查詢完全按照它的設想進行。抓住表格的值並將其放入可查詢的表格中。我想知道我怎麼剛剛得到的值或將其轉換爲「字節數組」的形式,我希望它成爲英寸將可查詢字節轉換爲字節[]

ctx.Files.Where(x => x.Id == 1).Select(x => x.FileName) 
+0

如果你想在單一的結果,調用'.FirstOrDefault()'後'選擇(...)',我猜你不要得到一個字節數組,而是一個字符串數組。 – Silvermind

+0

@Silvermind,如果最多隻有一個具有相同ID的記錄,則使用「Single」或「SingleOrDefault」。 –

+0

@PauloMorgado不,如果您正在搜索具有唯一約束的記錄,則應該使用'FirstOrDefault()'。例如,如果您有一個巨大的集合,FirstOrDefault()會在第一個命中時停止,而SingleOrDefault()繼續運行以找到重複的集合,這對於大型集合而言可能是巨大的性能成本,並且由於它是唯一的價值,這是矯枉過正。如果對獨特性沒有限制,並且完全取決於單一結果並且您不確定,因爲有人可能已經搞砸了;使用'SingleOrDefault()'。 – Silvermind

回答

1

的結果,因爲您的查詢返回一個字符串,你可以這樣寫的文件:

byte[] bytes = File.ReadAllBytes( 
    ctx.Files.Where(x => x.Id == 1).Select(x => x.FileName).Single() 
); 
0

呼叫.ToArray()在LINQ語句