ServiceStack OrmLite - 对 > 和 < 表达式使用字符串类型
ServiceStack OrmLite - using String type for > and < expressions
我有以下 POCO class,其中 Date 被定义为字符串,并且始终符合以下格式 'yyyyMMdd'
public class Price {
[AutoIncrement]
public int Id {get;set;}
public string Date {get;set;}
public decimal Price {get;set;}
}
我想 运行 使用 Linq 的 OrmLite 查询,它检索日期大于或等于特定请求字符串 PriceDateGreaterThan 参数的所有价格。
即
var prices = Db.Select<Price>().Where(ar => ar.PriceDate >= request.PriceDateGreaterThan).ToList();
鉴于 PriceDate 和 PriceDateGreaterThan 都是字符串类型(而不是 int 或 DateTime),我如何使用 OrmLite 运行 此查询?
由于 .NET 的 BCL 没有为 String
(例如 <=,<,>,=>
)定义比较运算符,因此您不能为此使用类型化的 API,因此您需要使用自定义 SQL,例如:
var q = Db.From<Price>();
q.Where(q.Column<Price>(x => x.Date) + " >= {0}", priceDateGreaterThan);
var prices = db.Select(q);
我有以下 POCO class,其中 Date 被定义为字符串,并且始终符合以下格式 'yyyyMMdd'
public class Price {
[AutoIncrement]
public int Id {get;set;}
public string Date {get;set;}
public decimal Price {get;set;}
}
我想 运行 使用 Linq 的 OrmLite 查询,它检索日期大于或等于特定请求字符串 PriceDateGreaterThan 参数的所有价格。
即
var prices = Db.Select<Price>().Where(ar => ar.PriceDate >= request.PriceDateGreaterThan).ToList();
鉴于 PriceDate 和 PriceDateGreaterThan 都是字符串类型(而不是 int 或 DateTime),我如何使用 OrmLite 运行 此查询?
由于 .NET 的 BCL 没有为 String
(例如 <=,<,>,=>
)定义比较运算符,因此您不能为此使用类型化的 API,因此您需要使用自定义 SQL,例如:
var q = Db.From<Price>();
q.Where(q.Column<Price>(x => x.Date) + " >= {0}", priceDateGreaterThan);
var prices = db.Select(q);