Beispiel #1
0
        /// <summary>
        /// 指定されたレコードをテーブルに挿入し、自動採番IDを返します。
        /// </summary>
        /// <typeparam name="T">テーブルにマッピングされた型</typeparam>
        /// <param name="data">挿入するデータ</param>
        /// <returns>自動採番ID</returns>
        public virtual long InsertAndGet <T>(T data)
        {
            This.AssertInsertAndGet <T>();
            var sql    = this.CreateInsertAndGetSql <T>();
            var reader = this.Connection.QueryMultiple(sql, data, this.Transaction, this.Timeout);

            return((long)reader.Read().First().Id);
        }
Beispiel #2
0
        /// <summary>
        /// 指定されたレコードをテーブルに非同期的に挿入し、自動採番IDを返します。
        /// </summary>
        /// <typeparam name="T">テーブルにマッピングされた型</typeparam>
        /// <param name="data">挿入するデータ</param>
        /// <returns>自動採番ID</returns>
        public virtual async Task <long> InsertAndGetAsync <T>(T data)
        {
            This.AssertInsertAndGet <T>();
            var sql    = this.CreateInsertAndGetSql <T>();
            var reader = await this.Connection.QueryMultipleAsync(sql, data, this.Transaction, this.Timeout).ConfigureAwait(false);

            var results = await reader.ReadAsync().ConfigureAwait(false);

            return((long)results.First().Id);
        }