簡體   English   中英

ormlite servicestack中的Sql

[英]Sql in ormlite servicestack

我將 ormlite 與 servicestack 一起使用,我遇到了這個問題。 我已經在我的數據庫的列中保存了一個字符串列表,所以我想做一個 select sql 像這樣: Select top 1 * From MyListSavedInb (MyListSavedInb) MyVariable

var orders = db.Select<Order>(o => Sql.In(o.Ldv, o.Waybills));

其中 o.Ldv 是一個字符串,o.Waybills 是保存在 db 上的字符串列表

有什么解決辦法嗎?

您不能使用服務器端 SQL 查詢一個 blobbed 字段,最好的方法是模糊字符串索引搜索,例如:

var q = db.From<Order>();
q.Where($"CHARINDEX({q.Column<Order>(x=>x.Ldv)},{q.Column<Order>(x=>x.Waybills)}) > 0")
 .Take(1);
var order = db.Single(q);

但從本質上講,您不應該對任何要對其執行服務器端 SQL 查詢的字段進行模糊處理。

一種更類型化和更健壯的方法是在過濾結果集后對客戶端上的 blobbed 集合執行最終查詢,例如:

var orders = db.Select(q);
var order = orders.FirstOrDefault(x => x.Waybills.Contains(term));

但是由於此查詢是在客戶端上完成的,您需要確保它是在有限的過濾結果集上完成的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM