linq - 如何使用包含在实体框架中的串联字符串上进行查询
问题描述
我的 Serial 对象包含以下值
string Class
int Product
int Code
它们一起形成一个序列号。请注意,其中 2 个是整数。
Class + Product.ToString() + "-" + Code.ToString()
我正在尝试基于字符串进行过滤。例子:
serials = _context.Serials.AsQueryable();
serials = serials.Where(serial => serial.Class.Contains(searchText));
我正在寻找对.Contains()
连接的SerialNumber
. 我将如何在 EF Core 中执行此操作?
像这样的东西是行不通的。引发关于未翻译查询的错误。
serials = serials.Where(serial => string.Concat(serial.ProductClass, serial.ProductNumber.ToString(), serial.CodeNumber.ToString()).Contains(searchText))
解决方案
仅支持 string.Concat(string, string)重载。
改用+
运算符:
.Where(serial =>
(serial.ProductClass + serial.ProductNumber.ToString() + serial.CodeNumber.ToString())
.Contains(searchText))
推荐阅读
- javascript - 使用自定义函数扩展外部类原型/类型定义(Typescript)
- javascript - 有没有办法在 javascript/node.js 中编码谷歌转换 api
- angular - Angular 8 - 使用 SSC 登录实现 oaUTH 2
- r - 使用循环创建网络组效率不高
- javascript - NodeJS Express 递归路由
- javascript - 2 个按钮,但随机一个是正确的
- javascript - 如何使用 DD/MM/YYYY 格式按年份过滤数组
- javascript - 使用threejs将多个图像旋转一圈
- node.js - 无法使用 express-edge 模板从 mongodb 文档中呈现数组元素
- docker - Dcoker 命令给出错误standard_init_linux.go:228: exec 用户进程导致:exec 格式错误