/// <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); }
/// <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); }