linq 带有LIKE的C#实体框架

cxfofazt  于 2022-12-06  发布在  C#
关注(0)|答案(2)|浏览(130)

我有一个应用程序,代码如下:

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

Users列中的数据如下所示:

05621
 18763
 58763
 98599

运行代码时,生成的列表包含05621、58763和98599
我想实现一个Like,而不是一个Contains。换句话说,我想检索User is LIKE "5%"中的每个数据记录。
结果列表应为:

58763

我该如何实现这一点?
谢谢你!

31moq8wy

31moq8wy1#

将您的.Where()子句替换为如下内容:

string passedValue = "5";
results = db.procedure1
            .Where(c => EF.Functions.Like(c.User, $"%{passedValue}%"))
            .OrderBy(o => o.User).ToList();
vxbzzdmp

vxbzzdmp2#

对于LIKE "5%",我们有StartsWith,因此您可以这样做

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

对于LIKE "%5",我们有EndsWithLIKE "%5%" -包含'

相关问题