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 void UpdateManyItems() { IEnumerable <BulkUpdateItem> data = GetItems(); using (var reader = new EnumerableDataReader <BulkUpdateItem>(data, new string[] { "Id", "Name" })) { using (var bulkUpdate = new MsAccessBulkUpdate("connection string")) { bulkUpdate.Update(reader); } } }
private void DataTableBulkUpdateCore(OleDbConnection cn) { DataTable expectedData = CreateExpectedData(); using (var bulkUpdate = new MsAccessBulkUpdate(cn)) { bulkUpdate.DestinationTableName = TableName; bulkUpdate.PrimaryKeyColumn = PrimaryKeyColumn; bulkUpdate.Update(expectedData); } DataTable actualData = LoadData(cn); MsAccessBulkHelper.CompareTables(actualData, expectedData); }
private void IBulkActionDataReaderBulkUpdateCore( OleDbConnection cn, DataTable expectedData, Action <IDbConnection, IDbTransaction, string> action) { using (IBulkActionDataReader reader = CreateDataReaderForUpdate()) using (var bulkUpdate = new MsAccessBulkUpdate(cn)) { bulkUpdate.DestinationTableName = TableName; bulkUpdate.PrimaryKeyColumn = PrimaryKeyColumn; bulkUpdate.TempTableAction = action; bulkUpdate.Update(reader); } DataTable actualData = LoadData(cn); MsAccessBulkHelper.CompareTables(actualData, expectedData); }
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); } }
public void BulkUpdateDataFromIDataReaderIntoMdbSynchronouslyWithoutDeadLock() { AsyncContext.Run(() => { Helpers.SkipTestIfJetProviderNotAvailable(); using (var helper = CreateHelper(ProviderType.Jet, MdbFileName)) { DataTable expectedData = CreateExpectedData(); using (IBulkActionDataReader reader = CreateDataReaderForUpdate()) using (var bulkUpdate = new MsAccessBulkUpdate(helper.Connection)) { bulkUpdate.DestinationTableName = TableName; bulkUpdate.PrimaryKeyColumn = PrimaryKeyColumn; bulkUpdate.Update(reader); } DataTable actualData = LoadData(helper.Connection); MsAccessBulkHelper.CompareTables(actualData, expectedData); } }); }