2011-06-16 56 views
1

我是新來的EF和LINQ,希望能在這裏得到一些答案。linq哪裏根據選定的項目?

我正在嘗試從列表中搜索條件是根據組合框中的selecteditem進行搜索的。 組合框包含15個項目(所有位數據類型),但爲了示例的緣故,讓我把它縮小到2。項目是(公益,民事)

現在我有一個名爲listOfAllNeutrals(對象名稱是中性與諸如公益(比特)和民間(位)等屬性,我想過濾它使用where條件根據所選擇的項目。

所以,如果所選的項目=無償,LINQ的是這樣的

var result = from n in listOfAllNeutrals 
      where n.probono==true 
      select n; 

,但我的概率是我怎麼告訴了n.property應根據selectedItem屬性是什麼? 像這個:

var result = from n in listOfAllNeutrals 
      where getpropertyName==true 
      select n; 

有沒有更簡單的方法,我不想在可能的情況下使用If條件。

回答

0

您需要使用if或getpropertyName(Neutral objNeutral)函數內部的開關將所選項目映射到要評估和評估的屬性。您需要以某種方式映射object =>屬性。

0

嘗試

var result = from n in listOfAllNeutrals 
      where (selectedItem == proBono && n.probono == true) 
      || (selectedItem == civil && n.civil == true) 
      select n; 
+0

這是好的,但我不想這樣做,因爲這就像做的,如果將selectedItem是probon,其中n.probo。我想出瞭如下的解決方案,我使用關鍵字accrdg直接從數據庫獲取列表(QualificationSubType)NeutralFileMaintList = FileMaintenanceBusiness.Instance.GetManyNeutralFileMaintInfobyKeyword(true,QualificationSubType); – user742102 2011-06-17 04:41:24

+0

好吧,我剛剛重讀了這個問題,我發現組合框中有15個項目,所以我的解決方案絕對不會是一個優雅的。但是,讓我問你,桌子上有15列,每個項目有一列?你確定這是最好的解決方案,你有沒有考慮過在單個專欄中這樣做?它會使這個查詢變得更簡單,並且您仍然可以爲您的類創建屬性,以便其餘代碼可以編譯和工作。看看http://msdn.microsoft.com/en-us/library/cc138362.aspx(滾動到名爲枚舉類型的位標記部分)一個簡單的例子 – Vedran 2011-06-17 06:59:30

+0

感謝您的建議,但我認爲這是更好將這些列作爲列,因爲它將在整個系統中經常使用,而且這是每種情況(成千上萬的法律案例),而不僅僅是鏈接中的例子。 :) – user742102 2011-06-18 05:16:19