使用ServiceStack.OrmLite 3.9.70.0时,并遵循ServiceStack.OrmLite wiki中的一些示例。
我正在尝试选择LastActivity日期月份= 1的行。
我一直收到错误:
{"variable 'pp' of type 'Author' referenced from scope '', but it is not defined"}
LastActivity是一个可以为空的DateTime,定义如下:
public DateTime ? LastActivity { get; set;}
我试过了:
db.Select<Author>(q => q.LastActivity.Value.Month == 1);
和
var visitor = db.CreateExpression<Author>();
db.Select<Author>(visitor.Where(q => q.LastActivity.Value.Month == 1));
和
SqlExpressionVisitor<Author> ev = OrmLiteConfig.DialectProvider.ExpressionVisitor<Author>();
db.Select<Author>(ev.Where(q => q.LastActivity.Value.Month == 1));
和
var predicate = ServiceStack.OrmLite.PredicateBuilder.True<Author>();
predicate = predicate.And(q => q.LastActivity.Value.Month == 1);
db.Select<Author>(predicate);
我试图避免在select中使用sql字符串,因为我喜欢对字段名称和类型进行编译时检查。
答案 0 :(得分:0)
在日期字段IE
上做一个小于和多于LastActivity >= variableThatHoldsStartDateOfMonth && LastActivity <= VariableThatHoldsLastDayOfMOnth.
这将为您提供整月的结果