gpt4 book ai didi

c# - 在 C# 的 Dynamic Linq 中使用 "Contains"关键字查询数据

转载 作者:可可西里 更新时间:2023-11-01 08:11:00 26 4
gpt4 key购买 nike

在 C# 的动态 linq 中执行具有“包含”关键字的查询时,我遇到了一些问题。我收到以下错误

“Int32”类型中不存在任何属性或字段

我的代码如下:

如果我为数据类型字符串字段使用“包含”关键字,那么它可以正常工作,如下所示

string[] CandidateNamesArray = new string[]{"Ram", "Venkat", "Micheal"}
var dynamicLinqQuery = Candidates.Where("CandidateName.Contains(@0)", CandidateNamesArray );
  • 工作正常

但是如果我对数据类型 int 字段使用“Contains”关键字,那么它会抛出如下异常

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'"

也尝试过如下的另一种方式

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'"

我花了将近 2 天的时间来解决上述问题,但未能成功。任何人都可以帮助我解决上述问题......提前致谢

最佳答案

我知道你的帖子已经过去很长时间了,但我今天遇到了同样的问题。

我在 Contains 中的属性之前使用 outerIt 解决了这个问题。

在你的例子中:

int[] CandidateIdsArray = new int[]{4, 78, 101}
var dynamicLinqQuery = Candidates.Where("@0.Contains(outerIt.CandidateId)", CandidateIdsArray);

它对我有用,因为 DynamicLinq 认为 CandidateId 是数组对象的一个​​属性。并使用 outerIt 使其理解它指的是外部迭代器,即 Candidate。

关于c# - 在 C# 的 Dynamic Linq 中使用 "Contains"关键字查询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15633066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com