繁体   English   中英

ServiceStack OrmLite“喜欢”Linq

[英]ServiceStack OrmLite "Like" Linq

在我的数据库中,我有一个名为GROUPS字段string(max) ,我在其中存储用分号分隔的记录组; . 我使用Service Stack ORM LiteLinq来获取分配给选定组的记录。 使用SQL我可以在示例中使用LIKE查询来实现这一点:

WHERE GROUPS LIKE 'selected_group' OR GROUPS LIKE '%;selected_group' OR GROUPS LIKE '%;selected_group;%' OR GROUPS LIKE 'selected_group;%'

我需要在C# Linq Query做同样的事情,但我有问题。 我不知道如何为边缘示例创建查询。 如果我使用我的表达式搜索名为“cat”的组:

q = q.Where(x => x.Groups.Contains($";cat;") || x.Groups.Contains($";cat")
       || x.Groups.Contains($"cat;") || x.Groups.Equals("cat"));

我会得到有这个组的记录。 但是如果这些记录有 2 个组"house;caterpillar" ,查询也会返回带有组"caterpillar"的记录。 SQL表达式将排除这种情况。 有没有直接在 C# 代码中解决这个问题的巧妙方法?

听起来你想改用.EndsWith() ,例如:

q.Where(x => x.Groups.EndsWith(";cat;"))

OrmLite 文档包含更多OrmLite 示例查询

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM