簡體   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