C# 如何在Linq上使用动态列?
如何在Linq上使用动态列 例如,强>C# 如何在Linq上使用动态列?,c#,linq,dynamic,C#,Linq,Dynamic,如何在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 =
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);
其他示例强>
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);
谢谢大家。使用动态linq库:或
您也可以查看:博客上的文章。谢谢您的回复和评论 我使用不同的方法
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);
var SQL1=(来自ESE.viw_kisiler中的i)
选择i);
数据表DT=LINQToDataTable(SQL1);
var SQL2=(从DT.AsEnumerable()中的t开始)
其中t.Field(ColumnName).Contains(Word)
选择t);
首先,我将Linq查询转换为数据表,然后我尝试使用这些代码。
它现在正在工作 你不能。Linq不支持这一点。你能解释一下你所说的“动态专栏”到底是什么意思吗?@Lazarus你可以,但我读了你写的文章需要做很多工作。请看我的例子。我想使用.Contains谢谢。@user956872-我认为动态linq库很容易满足您的需要。我看到了很多例子。但是方法还是非常不同的。例如它的工作;其中(a=>a.ad.Contains(kelime)),但仍然不能使用动态列名。Try var tmp=ESE.viw_kisiler.Where(String.Format(“{0}.Contains(\“{1}\”),ColumnName,kelime))@斯格摩尔指出了它的错误<代码>System.Data.EntitySqlException未经处理,无法解析为有效的函数类型。接近简单标识符。谢谢。Contains方法有一个“不区分大小写”的选项。我通过StringComparison和扩展方法解决了这个问题<代码>公共静态bool Contains(此字符串源,字符串toCheck,字符串比较comp){return source.IndexOf(toCheck,comp)>=0;}
其中t.Field(ColumnName).Contains(Word,StringComparison.InvariantCultureIgnoreCase)
这是一个很好的角度。LINQToDataTable在这种情况下是如何工作的?是否有进行此转换的代码或库?