2012-03-22 44 views
0

我有一個列表,我想看看這些字符串是否在單個sql記錄的3個字段中的任何一個使用linq to sql。linq sql對象與列表項匹配的方法

ListA<strings>; 
    var found=db.People.Where(p=>p.field1 field 2 or field 3 is in ListA). Select this person 

回答

1

使用此代碼:

ListA<strings>; 
var found=db.People.Where(p=> 
    ListA.Contains(p.field1) || ListaA.Contains(p.field2) 
    || ListaA.Contains(p.field3)); 

請注意,這會從數據庫中的所有記錄和測試應用方面的條件。

編輯:這只是與其他答案相同的代碼,但包括關於它如何工作的說明,所以我不會刪除它。 (由於@Adrian lftode評論而改變)

+1

你使用的是什麼樣的C# – 2012-03-22 17:40:46

+0

我寫了或代替||。這當然是一個錯誤。但是,我從原始信息中離開了「選擇此人」,因爲我認爲這是某種「僞代碼」。 – JotaBe 2012-03-22 17:47:37

+1

您的答案的問題是由於語法不正確。認爲一個非常新的C#會在看到這個時候感到困惑 – 2012-03-22 17:47:53

2
var found = db.People.Where(p=>ListA.Contains(p.field1) || ListA.Contains(p.field2) || ListA.Contains(p.field3));