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);
        }
Exemple #2
0
        /// <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));
        }
Exemple #3
0
        /// <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));
        }