[英]How can I use a List<> as the condition for my where clause with Linq?
所以我已經把頭撞在那堵諺語的牆上好幾個小時了,我想我想看看是否有人能解決這個問題……
我有一個想要用作搜索過濾器的值的List<string>
。 在過去,我會在WHERE field = 'a' OR field = 'b' OR field = 'C'
構建一個WHERE field = 'a' OR field = 'b' OR field = 'C'
的字符串。 但是隨着Linq的建立,那么較長的WHERE
子句相當困難。 我希望能工作的是:
var results = from x in x.table
where x.Equals(List<string>)
select x;
las,編譯器不夠聰明,無法將List <>分解為WHERE field = 'a' OR field ='b'
類型的查詢。 我已經在List<string>
上以foreach循環的方式進行了此過程,但是當我希望執行的那一部分在SQL Server上進行時,它會將處理推送到客戶端。 我是住在這里的幻想世界還是有辦法實現這一目標?
您可以使用Contains()
List<string> yourList = new List<string> { "A", "B", "C" };
var results = from x in x.table
where yourList.Contains(x)
select x;
如果是SQL的Linq,它將生成WHERE field IN ('A', 'B', 'C')
子句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.