c# - == 是否总是对 SQL 中的二进制文件执行 SequenceEqual()?
问题描述
我需要比较Linq2sql完成的查询中的二进制值。
table1.FirstOrDefault(r => r.ID.SequenceEqual(id))//ID and id are binary/byte[].
但是 Linq2sql 抛出异常SequenceEqual
,因为它没有为 SQL 定义,因此无法在其中执行。
我找到了这个答案,它创建了一种新Compare
方法来混淆 Linq 以允许它。
但后来我发现这==
也很有效,因为 SQL 无论如何都会逐字节比较二进制文件。
但是由于我看到了没有带来这个简单解决方案的答案,我想知道它是否真的会一直有效。
那么,我在这里遗漏了什么陷阱吗?
解决方案
正如@Sonal 所说==
,将始终适用于比较byte[]
或任何其他支持相等比较的数据类型,但是您提到的问题不检查相等性,但它要求大于和小于运算符(>
and <
)用于不支持的数据类型它们,因此需要自定义比较方法。
推荐阅读
- python - I've created variables but none of them are working
- ruby-on-rails - How to use material design text fields in rails
- php - PHP 读取西里尔文的目录
- python - 如何将多个 pandas 列输入 keras 进行学习?
- java - 反向迭代器 - 用于 reduceRight 功能
- php - Laravel 5.4 使用数据透视表查询数据库
- random - 如何通过知道一些 num seq 来破解 RandomUtils.nextInt(a,b)
- time-series - 如何根据相关性推断时间序列
- python - 使用带有词形还原的句子的 spacy-lookup?
- r - gtkText() 中的错误:找不到函数“gtkText”