2011-07-18 89 views
2

在我的應用程序中,我遇到了查詢問題。如何檢查列表包含Linq中的多個值到sql

我想運行一個具有多個條件值的查詢。

IQueryable<DealsDetails> DD = (from D in DbContext.Deals 
             where lst.Contains(D.DealCategory) 
             select D); 

我有這樣的查詢和LST將包含這樣的值:

lst.Add("Other"); 
     lst.Add("Services"); 

而且D.DealCategory包含這樣的值。

Other,Beauty,Services 
Beauty,Services, 
Services 
Other, 
Beauty 
Other,Services 

我需要表中的所有行,其中包含該列表的任何項目。意味着包含其他和服務的所有行。

結果是

其他,美容,服務 美容,服務, 服務 其他 其他,服務

剔除美行。

請告訴我我是如何寫這個查詢。

首先編輯

我需要所有那些DealCategory列包含從列表中的任何項目行。

感謝

回答

0

做了與你的兩個列表加入,並從第一個列表僅返回元素:

IQueryable<DealsDetails> DD = from D in DbContext.Deals 
           join C in lst 
           on D.DealCategory equals C 
           select D; 

編輯:作爲@Muhammad說,這不會因爲交易工作在Db和Ist在內存中,但如果您可以直接在服務器上過濾第一個項目,我會讓其修改答案:

IQueryable<DealsDetails> DD = from D in DbContext.Deals 
           join C in DbContext.DealCategories 
           on D.DealCategory equals C 
           where [Clauses to filter Cs] 
           select D; 
+2

交易以db和lst內存ID懷疑它會工作 –

+0

我怎麼總是忘記這個「限制」:-S我想我總是與數據庫或inmem工作,但不是在同一時間。 – Tipx

+0

謝謝答覆,但這不是我想要的。 –

相關問題