繁体   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