2011-09-21 59 views
1

如何在Linq上使用動態列?如何在Linq上使用動態列?

例如;

var tmp = (from i in ESE.viw_kisiler 
         where (i.i_want_to_use_dynamic_column_in_here.Contains(kelime)) 
         select i); 

其他示例;

var a = (ComboBoxItems)ComboBox1.SelectedItem; 
    var ColumnName = a.Value; 

     var tmp = (from i in ESE.viw_kisiler 
           where (i.ColumnName.Contains(kelime)) 
           select i); 

謝謝大家。

+0

你不能。 Linq不支持這一點。 – Lazarus

+0

你能解釋一下動態列的含義嗎? –

+0

@拉扎魯斯你可以但它需要相當一些工作 –

回答

1

感謝您的回覆和評論。

我使用不同的方法;

var SQL1 = (from i in ESE.viw_kisiler 
          select i); 

       DataTable DT = LINQToDataTable(SQL1); 

       var SQL2 = (from t in DT.AsEnumerable() 
         where t.Field<string>(ColumnName).Contains(Word) 
         select t); 

首先,我是轉換Linq查詢一個DataTable,然後我嘗試這些代碼。 它正在工作!

+0

關於Contains方法存在「不區分大小寫」。 我通過StringComparison和一個擴展方法來解決它。 'public static bool Contains(this string source,string toCheck,StringComparison comp) { return source.IndexOf(toCheck,comp)> = 0; }' '其中t.Field (columnName)方法。載(字,StringComparison.InvariantCultureIgnoreCase)' –

+0

http://stackoverflow.com/questions/444798/case-insensitive-containsstring/4217362#4217362 –

+0

HTTP:/ /blogs.msdn.com/b/jmanning/archive/2008/02/25/string-contains-really-should-have-an-overload-with-stringcomparison-specified.aspx –

1

。利用動態LINQ庫:Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library)predicate builder

enter image description here

,你也可以檢查:Dynamic query with Linq文章博客。

+0

我讀你的寫。你可以看看我的例子。我想用.Contains 謝謝。 –

+0

@ user956872 - 我認爲動態linq庫很容易滿足你的需求 –

+0

我看到了很多例子。但仍然這樣的方法是非常不同的。例如 例如它的工作; _ESE.viw_kisiler.Where(a => a.ad.Contains(kelime))_ 但仍然不能使用動態列名稱。 Thaks。 –