You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C# Entity Framework中用LIKE '5%'替代Contains查询?

解决方案

要实现SQL中LIKE '5%'的匹配效果(仅获取以指定字符开头的记录),可以用以下两种方式:

方式一:使用LINQ的StartsWith方法

这是最直观的写法,EF会自动将其转换为对应的LIKE '前缀%' SQL语句,完全符合你的需求:

string passedValue = "5";
results = db.procedure1
            .Where(c => c.User.StartsWith(passedValue))
            .OrderBy(o => o.User).ToList();

方式二:显式调用SQL LIKE函数(EF Core适用)

如果需要更灵活的匹配模式,可以直接使用EF Core提供的EF.Functions.Like方法:

string pattern = "5%";
results = db.procedure1
            .Where(c => EF.Functions.Like(c.User, pattern))
            .OrderBy(o => o.User).ToList();

关键说明

  • 你之前用的Contains方法会被EF转换为WHERE User LIKE '%5%',所以会匹配所有包含"5"的字符串,这就是结果包含05621、58763、98599的原因。
  • StartsWith对应的SQL逻辑是WHERE User LIKE '5%',只会匹配以"5"开头的记录,最终只会返回58763。

内容的提问来源于stack exchange,提问作者Jonathan Small

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:15:42