如何使用 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);