コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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();
                }
            }
        }