首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么IQueryable总是在Contains函数中显示"false“,即使这应该是真的

在处理IQueryable对象时,如果Contains函数总是返回"false",可能存在以下几个可能的原因:

  1. 数据类型不匹配:Contains函数在比较元素时需要确保数据类型一致。如果IQueryable对象中的元素类型与Contains函数中要比较的数据类型不匹配,结果可能会显示"false"。例如,IQueryable对象中存储的是字符串,而你尝试使用Contains函数比较一个整数,结果将会是"false"。解决此问题的方法是确保IQueryable对象和Contains函数中比较的数据类型相匹配。
  2. 未正确实现比较逻辑:在默认情况下,Contains函数将使用元素的默认相等比较器来判断元素是否存在于IQueryable对象中。如果你使用的是自定义对象或自定义数据类型,你需要确保正确实现了相等比较的逻辑。这可以通过重写对象的Equals方法来实现。如果未正确实现比较逻辑,Contains函数可能无法正确判断元素的存在性,结果显示"false"。检查并确保你的自定义对象正确实现了相等比较的逻辑。
  3. 查询结果为空:如果IQueryable对象中不包含任何元素,Contains函数将始终返回"false"。在使用Contains函数之前,可以先检查IQueryable对象的Count属性来确保查询结果非空。

综上所述,如果IQueryable总是在Contains函数中显示"false",你可以检查数据类型是否匹配、比较逻辑是否正确实现以及查询结果是否为空。根据具体情况进行适当的调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET深入解析LINQ框架(六:LINQ执行表达式)

阅读目录: 1.LINQ执行表达式 在看本篇文章之前我假设您已经具备我之前分析的一些原理知识,因为章所要讲的内容是建立在之前的一系列知识点之上的,为了保证您的阅读顺利建议您先阅读本人的LINQ系列文章的前几篇或者您已经具备比较深入的...到目前为止我们对LINQ的执行原理已经很清楚了,从它的前期构想到它真正为我们所用都有足够的证据,但是似乎问题并没有我们想的那么简单,问题总是在我们使用中频频出现尤其是新技术的使用,当然有问题才能有进步。...表达式的处理可以分为常量表达式和动态变量表达式,常量表达式在VS编译的时候就可以直接计算表达式是否是true、false。...然后我们对最后的SQL进行分析,没有看见任何Where语句,为什么呢?是因为提供程序在内部对表达式进行了执行并分析了我们想要的输出结果,也不知道这样的效果是不是为了满足我们多条件拼接的问题。...1 IQueryable queryList = DbContext.TB_CX_TRUCK.AsQueryable();//初始化一个IQueryable对象 2 if (

1.3K10

在ASP.NET MVC5实现具有服务器端过滤、排序和分页的GridView

前文中需要注意的是,所有通过插件实现的特性都是客户端的,意味着所有的数据都首先在页面载入,然后由插件来处理客户端搜索、分页和排序的数据。...Datatables.MVC5 首先,我们需要从 NuGet 包管理器安装 datatables.mvc5。这是 Stefan Nuxoll 实现的绑定在控制器上的数据集模型。我们为什么需要这个包?...,处理的属性会在检索行为显示这个加载过程。...如果不想在数据加载时,显示这样的消息,可以将它默认状态设为 false,接下来,我们定义数据表的回调行为,在我们通过行属性指定了需要展示的行之后,lengthMenu 则会用于显示每页数据的数目。...我们正在获取 Assets 的引用,以便能够链接到实体框架请求数据,我们可以通过 Count()函数来获取数据集表的数据数目,这个数据将会传递到 DataTablesResponse 构造函数,成为行为方法的最后一行

5.4K80
  • .NET深入解析LINQ框架(四:IQueryable、IQueryProvider接口详解)

    同志们我们不断追求的应该是设计,而不是拿来就用。当你搞懂了原理之后,我想每个人都能想出来各种不同的应用方向,那么技术发展才有意义,当然这也是最难能可贵的。...如果我们使用扩展方法那么只能是扩展IEnumerable对象,没有问题。我们可以很方便的在LINQ的表达式调用我们自己的扩展方法,让自己的方法跟着一起链式查询。...但是这个时候应该适当的控制你针对继承下来的类的扩展,扩展方法应该是面向你内部使用的,不能污染到外部的对象。...3.3】.分段执行IQueryable的子方法(Queryable的扩展方法) 都知道Linq的查询是将一些关键字拼接起来的,行成连续的查询语义,其中背后的原理文章上上下下也说过很多遍,我想也应该大致的了解了...面向接口的设计追求职责分离,这里为什么把执行和创建IQueryable都放到IQueryProvider中去?

    1.5K11

    ASP.NET MVC5+EF6+EasyUI 后台管理系统(58)-DAL层重构

    在某一分部定义声明的任何类、结构或接口成员可供所有其他部分使用。最终类型是所有部分在编译时的组合。...方法 T4模版的使用 1.改变EF代码生成策略旧的ObjectContext改为T4(如果你的项目已经是DBContext API模式请跳过)(操作前备份项目) 在此之前我们也该改变一下代码生成策略,为什么会这个改变...Students", newStudent):                   context.Students.AddObject(newStudent):              而 DBContext则只有...保存后TT模版会自动生成 tt模版如果没有高亮显示的。要安装一些工具。因为我是一边改一边发文章的。...System.Data; namespace Apps.DAL { public class SysSampleRepository { 可以处理通用部分外的业务 这样我们关注点真的很专注了

    1.9K60

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(11)-系统日志和异常的处理①

    系统的异常需要被捕获,而不是将系统出错显示出来给用户就不了了知。我们需要异常日志不断改进系统。 我们老说用户,我们还没有用户权限的表,所以我们在Home先加入一个虚拟用户吧!...collection = from f in db.SysLog where deleteCollection.Contains...string.IsNullOrWhiteSpace(queryStr)) { list = list.Where(a => a.Message.Contains...(queryStr) || a.Module.Contains(queryStr)); pager.totalRows = list.Count();...反正我是要捕获到异常了...、 我们一般先对数据进行判断避免捕获异常,因为try catch会降低程序的性能,我们一般在业务层捕获异常,处理逻辑容易导致异常 处理异常出错,我们将输出文本格式,来记录异常

    1.9K80

    java集合框架源码解析_java源代码怎么用

    判断类: isEmpty():判断集合是否不含有任何元素; contains():判断集合是否含有至少一个对应元素; containsAll():判断集合是否含另一个集合的所有元素; 操作类: add...2.JDK8 新增抽象方法 此外,在 JDK8 中新增了四个抽象方法,他们都提供了默认实现: removeIf:相当于一个filter(),根据传入的函数接口的匿名实现类方法来判断是否要删除集合的某些元素...参考 JDK8 新增的接口方法默认实现这个特性,我大胆猜测,应该是针对一些实现 Collection 接口,但是又不想要实现 add(E e)方法的类准备的。...contains(e)) return false; return true; } 3.addAll addAll()方法就是在 for 循环里头调用 add() public...根据推测,跟 JDK8 接口默认实现的特性一样,是为了让子类可以有选择性的去实现接口的抽象方法,不必即使不需要该方法,也必须提供一个无意义的空实现。

    1.3K10

    如何运用领域驱动设计 - 存储库

    该内容位于 ASP.NET Core 官方教程 - 数据访问 - 高级教程 。 那么我们真的不需要存储库这种东西吗?答案是否定的,至少在实践领域驱动设计的应用。...通过返回一个IQueryable对象,甚至可以将业务查询逻辑直接放到应用层,这样想怎么操作就怎么操作。 请注意!!!非常的危险!!!! 您可能会问了:“我平时所接触的框架或者仓储不都是这样写的吗?...而现在,您可能正在这样做,开放且灵活的约定,再加上延迟的IQueryable对象,让仓储层完全丧失了原有的作用,它反而成了负担,为什么不直接使用DbContext对象呢?...所以存储库中所提供的应该是具有明确约定的方法。 这里我摘抄了 领域驱动设计模式、原理与实践 的一段话,我觉得它的描述非常好: 存储库不是一个对象。...不要为了显示而使用存储库 很多场景我们可能需要提供一个丰富的界面,或者一个完整的报表。比如在一个界面上显示了某个聚合的一个实体的信息,又或者在报表中提供了各个实体和值对象的汇总和特定信息。

    98030

    成为伟大程序员的 10 个要点

    4.软件应该是确定性的。这就是要瞄准的目标! 在理想化的世界,软件的一切都应该是“确定性的”。我们都应该是函数式程序员,编写没有副作用的纯粹的函数。如String.contains()。...我们也可以在我们自己的程序,而不仅仅是在标准库做到这一目标。我们可以尝试尽可能多地编写无副作用的确定性模块。真的与我们选择什么技术无关。...确定性编程可以用任何语言完成——即使函数语言有更多工具也可以通过更复杂的类型系统来防止意外的副作用。但是我所示的例子是一个Java示例。对象方向允许确定性。...最简单的规则之一就是使用只有几个参数的方法/函数。让我们来看看吧。前面提到的String.contains()方法就是如此。...我们可以写”abcde”.contains(“bcd”),不阅读任何文档,每个人都能立即了解做什么以及为什么。该方法做了一件事情,并且只做这一件。没有复杂的上下文/设置/其他传递给该方法的参数。

    41130

    构造函数调用子类的方法,写过吗?

    GetValue(),根据C++多态特性,应该是要调用Derive的GetValue()返回2,真的是这样吗?...为什么Base的构造函数与虚构函数即使调用虚函数,也是调自己的函数呢?跟构造函数与虚构函数的调用顺序有关。子类对象构造的时候,先调父类构造函数初始化父类,再调子类构造函数初始化子类。...子类对象虚构的时候,恰恰相反,先调子类对象的虚构函数,再调父类的虚构函数。输出的结果也证明了这点。 所以如果父类的构造函数与虚构函数是调用子类的函数,那就非常危险了。...因为父类的构造函数执行时,子类的构造函数还没有执行,说明子类还没有初始化,而这时就调用子类的方法,很容易出错,甚至崩溃。...如果真的很想在构造函数内调用子类方法进行初始化,还是显示提供一个初始化函数,让子类对象实例化完后,显示调用初始化函数

    1.4K20

    成为优秀程序员的10个技巧

    4.程序应该是确定性的。 在理想的世界,软件的一切都是“确定性的”。我们都是功能性程序员,编写无副作用的纯函数。像String.contains()。...我们也可以在自己的程序这样做,而不仅仅是在标准库。我们可以尝试尽可能多地编写无副作用的确定性模块。并不是我们选择何种技术的问题。...坦率地说,非常不完美。让我们看看一些最流行的编程语言: C Java的 SQL 你是否真的认为这些语言真的只是偏向数学?如果是这样,让我们​​讨论分段错误,Java泛型或SQL三值逻辑。...很容易明白。但难以实施。简单是需要花费大量时间和实践才能识别和生成的东西。 最简单的规则之一是使用只有少量参数的方法/函数。我们来看看。String.contains()方法是合格的。...我们可以编写"abcde".contains("bcd")并且无需阅读任何文档,每个人都会立即了解这是什么以及为什么。该方法只做一件事。没有复杂的上下文/设置/其他参数可以传递给方法。

    60900

    分析B站100万+视频,发现竟然有这么多干货资源。

    最近一年来B站真的是火热火热的。 最近的跨年晚会,得到了人民日报的表扬。 ? 去年4月份被央视点名表扬。 ?...20列 pd.set_option('display.max_columns', 20) # 显示10行 pd.set_option('display.max_rows', 10) # 设置显示宽度为2000...还有「见齐」,他开源的可视化工具(动态条形图)真的香。 没玩过B站的,可以输入图片中的「mid」值(av号)即可访问视频。...下面就来看一下110w的视频是由多少个UP主上传的,那些UP主上传视频最多。...就主页来看,应该是一位偏向科普类型的UP主。 通过这些数据应该就能将B站科技板块热门的UP主搜罗的差不多了。 对于那些冷门但质量好的UP主,或许就只能慢慢发现了。

    74550

    深入了解 useMemo 和 useCallback

    因为时间每秒改变一次,意味着我们不断地重新生成质数列表,即使用户选择的数字没有改变!!!」 在 JavaScript ,我们只有一个主线程,我们通过一遍又一遍地运行这段代码让它非常繁忙,每一秒。...通常被称为记忆,这就是为什么这个钩子被称为 useMemo。...但它真的是这里的最佳解决方案吗?通常,我们可以通过重组应用程序的内容来避免对 useMemo 的需求。...现在,如果您曾经尝试在现实世界的设置中使用纯组件,您可能会注意到一些特殊的东西:纯组件经常重新渲染相当多,即使看起来没有任何变化!很好地将我们引入了 useMemo 解决的第二个问题。 3....() { return 5; }; console.log(functionOne === functionTwo); // false 意味着,如果我们在组件定义一个函数,它将在每次渲染时重新生成

    8.9K30

    干货 | 国外大神总结的10个Java编程技巧!

    请看: 1 把字符串常量放在前面 通过把字符串常量放在比较函数equals()比较项的左侧来防止偶然的 NullPointerException 从来都不是一个坏主意,就像这样: ?...3 不要相信“-1” 我知道很偏执,Javadoc关于 String.indexOf() 的早期描述是这样的: “字符在字符序列第一次出现的位置将作为结果[被返回],如果字符不存在则返回-1。”...为什么不开始讨论 -1呢,某种意义上来说 -1 是 null 在int类型下的另一种形式。 4 避免意外的赋值 是的。即使最优秀的程序员也可能犯这种错误(当然,不包括我。看#7)。...你觉得你写了一个超好的API,它真的是既酷炫又直观;接着就出现了一群用户,他们只是把一切类型生搬硬套进 Object 直到那该死的编译器停止工作,然后他们突然链接到了错误的方法,认为这一切都是你的错...9 总是在switch语句里加上default Switch…作为最滑稽的表达式之一,我不知道是该心存敬畏还是默默哭泣。

    62310

    提高质量的3大精益生产方法

    1.认真对待“质量第一” 我们都说“质量第一”,但我们是认真的吗。我们是否总是在生产更多缺陷之前停止生产,我们是否总是确信我们发送给客户的产品满足他们的要求。...运营商和团队非常善于发现这种伪善,并将其解读为一个明确的信息,“管理层对质量不认真,所以我为什么应该认真对待”。他们是对的。...只有当你作为一名管理者保持100%的一致性,并准备停止流程以实现质量时,你的团队才会看到你实际上是认真的,并遵循你的领导。...我们认为,解决问题应该是你公司每个团队日常车间会议的一部分,每个人都应该接受培训,以使用或参与使用简单的问题解决技巧,如“5个为什么”或“因果图”。...标准工作不仅限于生产任务,而且可以应用于业务的几乎所有活动。 相当具有挑战性,但一旦采用,就会带来巨大的变化。

    23840

    在 R 估计 GARCH 参数存在问题(基于 rugarch 包)

    该软件包似乎具有比 fGarch 更多的功能和函数,这可以解释为什么它似乎更难以使用。然而,包的 vignette 很有帮助,值得打印出来。 Dr....这可能是真的,但模拟数据很重要,因为它可以被认为是统计学家的最佳情景。另外,生成模拟数据的过程的属性是先验已知的,包括生成参数的值,以及哪些假设(例如序列是否存在结构变化)是真的。...最后,如果估计量严重有偏,我们可能会看到大多数估计参数位于该范围内,但并不意味着“正确”值位于该范围内。我的模拟显示 fGarch 很难发现 α=β=0.2,即使这些参数是“真的”。Prof....它们需要符合函数对于参数的约定。例如,如果我们想设置 GARCH(1,1)模型的参数,我们列表元素的名称应该是 alpha1 和 beta1。...启示我,在实际数据中常见模型看似更好的结果可能正在利用优化器的偏差。 让我们看一下估计参数的分布。 ? ··· ? 这些图表明,“最佳”估计器仍然显示出一些病态,即使它的表现不如其他估计器差。

    4.3K31

    使用ORM框架,必须迁就数据库的设计吗?

    如果是简单,lz的这套语法/函数还是略显复杂。 (4)对于一款面向.NET的ORM框架,如果不兼容 IQueryable 接口是一种相当大的遗憾。...但是,如果我不是框架的设计者,没有阅读过全部源代码(即使你提供代码,我有没有力量去读还是个问题),那么你假想的“轻量”、“简单”都是不存在的。...意味着,我还必须使用面向数据库架构的语法来操纵业务逻辑。...这些应该是数据库或者专门的业务层去做的事情; (9)- 非常复杂的数据库关系和架构,比如多个外键,级联查询,唯一性约束,参照完整性约束。...比如自定义函数和SQL类型等等 --PDF.NET的实体类本着从简的原则,实体类没有引入复杂关系的概念,遇到这些复杂的查询,可以使用SQL-MAP功能,它可以将DataReader的结果读入实体类

    2.1K90

    Vue一个案例引发的动态组件与全局事件绑定总结

    最近在自学 Vue 也了解了一些基本用法,也记录了一些笔记有兴趣的朋友可以去查看我的其他文章,技术东西真的不能光靠看,看是没有的,你必须要动手实践,只有在实战项目中才能发现问题,才能发现我们没有掌握的知识点...下面我们就一步一步的来拆解 第一步 输入框获取焦点后显示组件很简单,我们给输入框绑定焦点事件然后给组件传入一个显示的状态即可,我们把 isShowCityList 传递给城市选择组件控制行为。...我们在 mounted 钩子函数,进行如下操作。...$refs.searchCity.contains(e.target)) { this.isLoadCityList = false; } }); } OK...$refs.searchCity.contains(e.target)) { console.log("全局事件被触发"); this.isLoadCityList = false

    1K20

    Vue一个案例引发的动态组件与全局事件绑定总结

    最近在自学 Vue 也了解了一些基本用法,也记录了一些笔记有兴趣的朋友可以去查看我的其他文章,技术东西真的不能光靠看,看是没有的,你必须要动手实践,只有在实战项目中才能发现问题,才能发现我们没有掌握的知识点...] 下面我们就一步一步的来拆解 第一步 输入框获取焦点后显示组件很简单,我们给输入框绑定焦点事件然后给组件传入一个显示的状态即可,我们把 isShowCityList 传递给城市选择组件控制行为。...我们在 mounted 钩子函数,进行如下操作。...$refs.searchCity.contains(e.target)) { this.isLoadCityList = false; } }); } OK...$refs.searchCity.contains(e.target)) { console.log("全局事件被触发"); this.isLoadCityList = false

    1.5K00
    领券