2011-05-07 31 views
1

條款比方說,我有一個int列表中的對象的屬性之一:動態其中具有陣列

public class MyObject 
{ 
    public List<int> TheList 
} 

函數接收這個對象作爲一個LINQ到SQL查詢和我一個參數有這樣的:

public static List<MyModel> ConditionalQuery(MyObject TheObject) 
{ 
    using (MyDataContext TheDC = new MyDataContext()) 
    { 
    var TheListBuilder = (from l in TheDC 

          where l.Property = the elements in the list 

          select l.ID).ToList(); 

     return new List<MyModel>(TheListBuilder); 

    } 
} 

基本上,參數包含INTS的名單,我需要這些整數與l.Property匹配。你如何寫這種類型的條件?

感謝您的建議。

回答

1
where list.Contains(l.Property) 

多個條件,你可以這樣做:

 var result = (
      from l in TheDC.Table 
      where list1.Contains(l.Property1) 
      where list2.Contains(l.Property2) 
      select l.Id 
      ).ToList(); 

 var result = (
      from l in TheDC.Table 
      where list1.Contains(l.Property1) && list2.Contains(l.Property2) 
      select l.Id 
      ).ToList(); 
+0

好吧,如果我有多個where子句這樣嗎?我該如何處理查詢:我在哪裏放置.ToList() – frenchie 2011-05-07 19:27:13

+0

@frenchie - 更新了答案。 ToList()應該總是在最後,因爲這會觸發對數據庫的請求。 – 2011-05-07 19:30:57

+0

好吧,我正在試着看看我得到了什麼。某些屬性僅基於MyObject的屬性觸發。我怎麼會寫這個,如果(TheObject.Property1 == 2){activate filter}。它看起來像我需要在多個步驟中構建查詢。 – frenchie 2011-05-07 19:35:19