private async Task BulkUpdateDataWithCompositePk(OleDbConnection cn)
        {
            List <BulkUpdateItemComposite> actualData = null;

            using (var bulkUpdate = new MsAccessBulkUpdate(cn))
            {
                var dataToUpdate = new EnumerableDataReader <BulkUpdateItemComposite>(
                    new[] {
                    new BulkUpdateItemComposite()
                    {
                        Id1 = 1, Id2 = 2, DataValue = "lorem ipsum 1"
                    },
                    new BulkUpdateItemComposite()
                    {
                        Id1 = 2, Id2 = 2, DataValue = "lorem ipsum 2"
                    },
                    new BulkUpdateItemComposite()
                    {
                        Id1 = 3, Id2 = 2, DataValue = "lorem ipsum 3"
                    }
                },
                    new[] { nameof(BulkUpdateItemComposite.Id1), nameof(BulkUpdateItemComposite.Id2), nameof(BulkUpdateItemComposite.DataValue) });

                bulkUpdate.DestinationTableName = Composite_TableName;
                bulkUpdate.PrimaryKeyColumn     = nameof(BulkUpdateItemComposite.Id1) + ", " + nameof(BulkUpdateItemComposite.Id2);
                await bulkUpdate.UpdateAsync(dataToUpdate);

                actualData = LoadDataForTableWithCompositePk(cn, Composite_TableName);
            }

            actualData.Should().Equal(new List <BulkUpdateItemComposite>(new[]
            {
                new BulkUpdateItemComposite()
                {
                    Id1 = 1, Id2 = 1, DataValue = "1 - 1"
                },
                new BulkUpdateItemComposite()
                {
                    Id1 = 1, Id2 = 2, DataValue = "lorem ipsum 1"
                },
                new BulkUpdateItemComposite()
                {
                    Id1 = 2, Id2 = 1, DataValue = "2 - 1"
                },
                new BulkUpdateItemComposite()
                {
                    Id1 = 2, Id2 = 2, DataValue = "lorem ipsum 2"
                },
                new BulkUpdateItemComposite()
                {
                    Id1 = 3, Id2 = 1, DataValue = "3 - 1"
                },
                new BulkUpdateItemComposite()
                {
                    Id1 = 3, Id2 = 2, DataValue = "lorem ipsum 3"
                },
            }));
        }
        public async Task BulkUpdateDataFromIDataReaderIntoMdbAsynchronously()
        {
            Helpers.SkipTestIfJetProviderNotAvailable();
            using (var helper = CreateHelper(ProviderType.Jet, MdbFileName))
            {
                DataTable expectedData = CreateExpectedData();

                using (IDataReader reader = expectedData.CreateDataReader())
                    using (var bulkUpdate = new MsAccessBulkUpdate(helper.Connection))
                    {
                        bulkUpdate.DestinationTableName = TableName;
                        bulkUpdate.PrimaryKeyColumn     = PrimaryKeyColumn;
                        await bulkUpdate.UpdateAsync(reader);
                    }

                DataTable actualData = LoadData(helper.Connection);
                MsAccessBulkHelper.CompareTables(actualData, expectedData);
            }
        }