2016-05-24 6 views
2

Sql.Countを使用しようとしていますが、コンパイラは型の問題を提起しました。型Tの結果を返しますが、int型またはlong型が必要です。ServiceStack OrmLite Sql.Countの使用方法

var UsedTimesCount = conn.Scalar<AgencyFee,int>(
    f => Sql.Count(f.Id), 
    f => f.AgencyFeeTemplateId == feeTemplate.Id 
); 

何か不足していますか?

インタフェースは次のとおりです。

public static T Count<T> (T value); 

私は期待して:私はSql.Count(f.Id)置き換えるためにSql.Sum(1)を使用

public static long Count<T> (T value); 

答えて

1

がOrmLiteでカウントを使用しての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); 
+0

ありがとうmythz! 'db.Count (x => x.Age <50);がより優れています。 接続が抽象化されていて、db.Countがなくても後で追加することがあります。 –

1

:ここ

var UsedTimesCount = conn.Scalar<AgencyFee,int>(
    f => Sql.Sum(1), 
    f => f.AgencyFeeTemplateId == feeTemplate.Id 
); 
関連する問題