【发布时间】:2023-03-08 08:54:01
【问题描述】:
我在编写一个检查整数中的连续数字是否包含在表的主键中的 linq 查询时遇到了一些困难。因此,假设有一个名为Employees 的表,其主键位于Employees.Id 列上。假设这个主键是 Sql Server 数据类型INT。我想使用 Entity Framework Code First 编写一个 linq 查询,它将返回主键包含字符串 456 的所有员工。类似于:
string filter = "456";
var results = from e in myDbContext.Employees
where e.Id.Contains(filter)
select e;
问题是 C# 中没有为整数数据类型提供 Contains 方法...
【问题讨论】:
-
仅供参考 string.Contains() 不是扩展方法,而是字符串对象的常规方法。
-
@recursive:谢谢,我已编辑问题以包含您的更正。
-
尽管 X.L.Ant 提供了解决方案,但您可能需要考虑将列的数据类型更改为
char或varchar。数字类型的目的是存储和处理值的幅度,这就是为什么int类型具有诸如“大于”和“小于”之类的内置函数的原因。如果你的 ID 中的单个符号有实际意义,那么你存储的实际上是一个 code,它恰好使用数字符号,但不代表一个数量级。
标签: c# entity-framework linq casting