簡體   English   中英

使用Linq,如何查詢匹配以逗號分隔的ID列表的記錄?

[英]Using Linq, how do I query for records matching a comma-separated list of IDs?

我有一個以逗號分隔的記錄ID列表,我從查詢字符串中獲取。 我需要返回所有記錄(來自SQL Server數據庫)與那些ID。 Linq最好的辦法是什么?

我認為它最終將轉換為“WHERE id IN(1,2,3,...)”形式的SQL語句,並且因為該查詢包含我開頭的相同的逗號分隔列表,將它打包成一個int數組然后讓Linq再次將它轉換回來似乎是一種恥辱。 但如果這是唯一的方法,那就好了。

正如您所暗示的那樣,最簡單的方法是首先將其轉換為數組。

string csv = "1,2,3";
IEnumerable<int> ids = csv.Split(',').Select( str => int.Parse(str));

var records = db.Records.Where( rec => ids.Contains(rec.id) );

使用Dynamic Linq可避免不必要的轉換

.Where("MyColumn.Contains(@0)", myArray)

動態Linq - String.Split

如何在動態linq查詢中使用“包含”或“喜歡”?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM