首页 > 解决方案 > 如何使用包含在实体框架中的串联字符串上进行查询

问题描述

我的 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))

标签: linq.net-coreentity-framework-core

解决方案


支持 string.Concat(string, string)重载。

改用+运算符:

.Where(serial => 
    (serial.ProductClass + serial.ProductNumber.ToString() + serial.CodeNumber.ToString())
    .Contains(searchText))

推荐阅读