【问题标题】:How to query with Contains on a concatenated string in Entity Framework如何使用包含在实体框架中的串联字符串上进行查询
【发布时间】:2020-09-28 05:08:23
【问题描述】:

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

我希望在串联的SerialNumber 上执行.Contains()。我将如何在 EF Core 中执行此操作?

这样的事情是行不通的。引发关于未翻译查询的错误。

serials = serials.Where(serial => string.Concat(serial.ProductClass, serial.ProductNumber.ToString(), serial.CodeNumber.ToString()).Contains(searchText))

【问题讨论】:

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


    【解决方案1】:

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

    改用+ 运算符:

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

    【讨论】:

    • 如此简单的修复。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    相关资源
    最近更新 更多