Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Linq上使用动态列?_C#_Linq_Dynamic - Fatal编程技术网

C# 如何在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 =

如何在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);
其他示例

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在这种情况下是如何工作的?是否有进行此转换的代码或库?