public void Count文生成() { var actual1 = PrimitiveSql.CreateCount(typeof(Person)); var actual2 = PrimitiveSql.CreateCount <Person>(); var expect = "select count(*) as Count from dbo.Person"; actual1.Is(expect); actual2.Is(expect); }
/// <summary> /// 指定されたテーブルにおいて指定の条件に一致するレコード数を非同期的に取得します。 /// </summary> /// <typeparam name="T">テーブルにマッピングされた型</typeparam> /// <param name="predicate">抽出条件</param> /// <returns>レコード数</returns> public virtual Task <ulong> CountAsync <T>(Expression <Func <T, bool> > predicate) { var count = PrimitiveSql.CreateCount <T>(); var where = PredicateSql.From(this.DbKind, predicate); var builder = new StringBuilder(); builder.AppendLine(count); builder.AppendLine(nameof(where)); builder.Append($" {where.Statement}"); return(this.Connection.ExecuteScalarAsync <ulong>(builder.ToString(), where.Parameter, this.Transaction, this.Timeout)); }
/// <summary> /// 指定されたテーブルのレコード数を非同期的に取得します。 /// </summary> /// <typeparam name="T">テーブルにマッピングされた型</typeparam> /// <returns>レコード数</returns> public virtual Task <ulong> CountAsync <T>() { var sql = PrimitiveSql.CreateCount <T>(); return(this.Connection.ExecuteScalarAsync <ulong>(sql, null, this.Transaction, this.Timeout)); }