使用"查询数据;包含"关键字动态的LINQ在C# [英] Query data using "Contains" keyword in Dynamic Linq in C#
问题描述
我在执行具有查询面临的一些问题包含在C#中的动态LINQ关键字。我提示以下错误:
没有属性或字段类型存在的Int32
我的代码如下:
如果我的用户在'包含'的数据类型的字符串字段的关键字,然后正常工作,如下
的String [] = CandidateNamesArray新的字符串[] {拉姆,Venkat在,迈克尔}
VAR dynamicLinqQuery = Candidates.Where(CandidateName.Contains(@ 0 ),CandidateNamesArray);
- 正常工作
但是,如果我使用'包含'为int类型的字段的关键字,然后抛出异常,如下
INT [] = CandidateIdsArray新INT [] {4,78,101}
VAR dynamicLinqQuery = Candidates.Where(CandidateId.Contains(@ 0),CandidateIdsArray);
运行时异常 - 没有适用的方法'包含'存在类型
'的Int32'。
块引用>
此外,在另一种方式试图如下
INT [] = CandidateIdsArray新INT [] {4,78,101}
VAR dynamicLinqQuery = Candidates.Where(@ 0.Contains(CandidateId),CandidateIdsArray) ;
运行时异常 - 无属性或字段'CandidateId'存在类型
'的Int32'。
块引用>
我已经花了近2天解决上述问题,但没能成功。可能任何一个请帮我解决了上述问题,...在此先感谢
解决方案您可以使用您的数组转换为字符串,然后进行包含于()转换回INT
I am facing some problem while executing the query having 'Contains' keyword in Dynamic linq in C#. I am getting the below error
No property or field exists in type 'Int32'
My code is as below:
If I user the 'Contains' keyword for datatype string field, then it works fine as below
string[] CandidateNamesArray = new string[]{"Ram", "Venkat", "Micheal"} var dynamicLinqQuery = Candidates.Where("CandidateName.Contains(@0)", CandidateNamesArray );
- works fine
But if I use the 'Contains' keyword for datatype int field, then it throws exception as below
int[] CandidateIdsArray = new int[]{4, 78, 101} var dynamicLinqQuery = Candidates.Where("CandidateId.Contains(@0)", CandidateIdsArray);
Runtime Exception - "No applicable method 'Contains' exists in type 'Int32'"
Also tried in another way as below
int[] CandidateIdsArray = new int[]{4, 78, 101} var dynamicLinqQuery = Candidates.Where("@0.Contains(CandidateId)", CandidateIdsArray);
Runtime Exception - "No property or field 'CandidateId' exists in type 'Int32'"
I have spend almost 2 days to resolve the above problem but not able to succeed. Could any one please help me out in resolving the above issue...Thanks in Advance
解决方案You can use convert your array to string, then make Contains() than convert it back to int
这篇关于使用"查询数据;包含"关键字动态的LINQ在C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!