コード例 #1
0
        public void ShouldPerformBulkInsert(BulkInsertTestCase <TestEntity> testCase)
        {
            // Given
            var createTableQuery = new QueryObject("create table ##TransactionsTest (Id int identity(1, 1) not null, Name nvarchar(max) not null, Value int not null);");
            var selectAllQuery   = new QueryObject("select * from ##TransactionsTest");
            var dropTableQuery   = new QueryObject("drop table ##TransactionsTest;");

            // When
            TestEntity[] actual;
            using (var connection = ConnectionsFactory.Create())
                try
                {
                    connection.Execute(createTableQuery);

                    using (var session = _sessionsFactory.Create())
                    {
                        session.BulkInsert("##TransactionsTest", testCase.Source);
                        session.Commit();
                    }

                    actual = connection.Query <TestEntity>(selectAllQuery).ToArray();
                }
                finally
                {
                    connection.Execute(dropTableQuery);
                }

            // Then
            Assert.Equal(testCase.Source, actual);
        }
コード例 #2
0
        public void ShouldPerformBulkInsert(BulkInsertTestCase <TestEntity> testCase)
        {
            // When
            TestEntity[] actual;
            using (var connection = SqlConnectionsFactoryMethod())
            {
                connection.Execute(@"create table #TestEntities (Id int identity(1, 1) not null, Name nvarchar(max) not null, Value int not null)");
                connection.BulkInsert("#TestEntities", testCase.Source);
                actual = connection.Query <TestEntity>("select * from #TestEntities").ToArray();
            }

            // Then
            Assert.Equal(testCase.Source, actual);
        }
コード例 #3
0
        public void ShouldPerformBulkInsertWithManuallyConfiguredMapping(BulkInsertTestCase <Totals> testCase)
        {
            // When
            Totals[] actual;
            using (var connection = SqlConnectionsFactoryMethod())
            {
                connection.Execute(@"create table #TestEntities (Id int identity(1, 1) not null, First int not null, Second int not null, Sum int not null)");
                connection.BulkInsert(
                    "#TestEntities",
                    testCase.Source,
                    x => x.WithProperty(entity => entity.First)
                    .WithProperty(entity => entity.Second)
                    .WithFunction(entity => entity.First + entity.Second, "Sum")
                    );
                actual = connection.Query <Totals>("select * from #TestEntities").ToArray();
            }

            // Then
            Assert.True(testCase.Source.IsSame(actual));
        }
コード例 #4
0
        public void ShouldPerformBulkInsertInExternalTransaction(BulkInsertTestCase <TestEntity> testCase)
        {
            // When
            TestEntity[] actual;
            using (var connection = SqlConnectionsFactoryMethod())
            {
                connection.Execute(@"create table #TestEntities (Id int identity(1, 1) not null, Name nvarchar(max) not null, Value int not null)");

                using (var transaction = connection.BeginTransaction())
                {
                    connection.BulkInsert("#TestEntities", testCase.Source, x => new StrictTypeMappingInfoProvider(typeof(TestEntity), x), transaction);
                    transaction.Commit();
                }

                actual = connection.Query <TestEntity>("select * from #TestEntities").ToArray();
            }

            // Then
            Assert.Equal(testCase.Source, actual);
        }