public async Task SelectAsyncFact() { var connection = this.Factory.CreateConnection(); var transaction = default(DbTransaction); var token = CancellationToken.None; try { connection.Open(); transaction = connection.BeginTransaction(IsolationLevel.Serializable); // 登録 var entity = new MembershipEntity() { ID = 0, Name = string.Format("MembershipsGatewayFacts.FindAsyncFact(new MembershipEntity {{ Name={0} }}) ", new Random().Next()), Password = @"password", Enabled = true, Email = @"*****@*****.**", CreatedOn = DateTime.Now, // UpdatedOn = CreatedOn, }; var inserted = await MembershipsGateway.InsertAsync(entity, connection, transaction, token); Assert.True(0 < inserted); // 取得 var criteria = new MembershipsCriteria() { ID = inserted, }; var selected = await MembershipsGateway.SelectAsync(criteria, connection, transaction, token); Assert.True(selected.Read()); selected.Close(); // 削除 var deleted = await MembershipsGateway.DeleteAsync(inserted, connection, transaction, token); Assert.True(deleted == 1); transaction.Commit(); } catch { if (transaction != null) { transaction.Rollback(); } } finally { if (connection != null) { connection.Close(); } } }
public async Task <MembershipEntity> FindAsync(MembershipsCriteria criteria, DbConnection connection, DbTransaction transaction, CancellationToken token) { var reader = default(DbDataReader); try { reader = await MembershipsGateway.SelectAsync(criteria, connection, transaction, token); var entity = await reader.ReadAsync() ? KandaDataMapper.MapToObject <MembershipEntity>(reader) : MembershipEntity.Empty; return(entity); } finally { if (reader != null) { reader.Close(); } } }