如何使用 ServiceStack OrmLite Sql.Count
How to use ServiceStack OrmLite Sql.Count
我正在尝试使用 Sql.Count,编译器提出了一个类型问题:returns 结果的类型为 T,但我想要一个 int 或 long 类型。
var UsedTimesCount = conn.Scalar<AgencyFee,int>(
f => Sql.Count(f.Id),
f => f.AgencyFeeTemplateId == feeTemplate.Id
);
我是不是漏掉了什么?
界面为:
public static T Count<T> (T value);
我预计:
public static long Count<T> (T value);
我用Sql.Sum(1)
代替了Sql.Count(f.Id)
:
var UsedTimesCount = conn.Scalar<AgencyFee,int>(
f => Sql.Sum(1),
f => f.AgencyFeeTemplateId == feeTemplate.Id
);
以下是在 OrmLite 中使用 Count 的 different API examples:
db.Scalar<Person, int>(x => Sql.Count(x.Age), x => x.Id > 0);
db.Count<Person>(x => x.Age < 50);
db.Count(db.From<Person>().Where(x => x.Age < 50));
var q = db.From<Person>()
.Where(q => q.Age > 40)
.Select(Sql.Count("*"))
db.Scalar<int>(q);
我正在尝试使用 Sql.Count,编译器提出了一个类型问题:returns 结果的类型为 T,但我想要一个 int 或 long 类型。
var UsedTimesCount = conn.Scalar<AgencyFee,int>(
f => Sql.Count(f.Id),
f => f.AgencyFeeTemplateId == feeTemplate.Id
);
我是不是漏掉了什么?
界面为:
public static T Count<T> (T value);
我预计:
public static long Count<T> (T value);
我用Sql.Sum(1)
代替了Sql.Count(f.Id)
:
var UsedTimesCount = conn.Scalar<AgencyFee,int>(
f => Sql.Sum(1),
f => f.AgencyFeeTemplateId == feeTemplate.Id
);
以下是在 OrmLite 中使用 Count 的 different API examples:
db.Scalar<Person, int>(x => Sql.Count(x.Age), x => x.Id > 0);
db.Count<Person>(x => x.Age < 50);
db.Count(db.From<Person>().Where(x => x.Age < 50));
var q = db.From<Person>()
.Where(q => q.Age > 40)
.Select(Sql.Count("*"))
db.Scalar<int>(q);