如何使用ServiceStack OrmLite Sql.Count

时间:2016-05-24 04:55:24

标签: servicestack ormlite-servicestack

我正在尝试使用Sql.Count,编译器引发了一个类型问题:它返回类型为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);

2 个答案:

答案 0 :(得分:2)

以下是在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);

答案 1 :(得分:1)

我使用Sql.Count(f.Id)替换var UsedTimesCount = conn.Scalar<AgencyFee,int>( f => Sql.Sum(1), f => f.AgencyFeeTemplateId == feeTemplate.Id );

echo '<img src="'.wp_get_attachment_link($image, 'large').'" alt="Projects" />';