.NET Bulk Operations AuditModeType
Description
The AuditModeType
enum represents if all properties should be included or excluded from the auditing. The default value is AuditModeType.IncludeAll
.
You can include or exclude specific properties with the ColumnMappingAuditModeType enum.
// The namespace is different because the https://bulk-operations.net/ library is used under the hood.. namespace Z.BulkOperations { /// <summary>The `AuditModeType` enum represents if all properties should be included or excluded from the auditing. The default value is `AuditModeType.IncludeAll`.</summary> public enum AuditModeType { /// <summary>The name/value that represents if all entity properties are included (Default Value).</summary> IncludeAll = 0, /// <summary>The name/value that represents if all entity properties are excluded.</summary> ExcludeAll = 1 } }
Example
We will demonstrate how to exclude all properties to include only specific properties.
Mapping
We will use the following mapping:
To exclude all properties
bulk.AuditMode = AuditModeType.ExcludeAll;
To include specific properties
bulk.ColumnMappings.Add( new ColumnMapping<Customer>("CustomerID", true) { AuditMode = ColumnMappingAuditModeType.Include } ); bulk.ColumnMappings.Add( new ColumnMapping<Customer>("Name") { AuditMode = ColumnMappingAuditModeType.Include } );
Execute
We will execute a BulkMerge
on a list that contains 1 new customer and 2 existing customers.
Code
// Execute List<AuditEntry> auditEntries = new List<AuditEntry>(); using (var bulk = new BulkOperation(connection)) { bulk.DestinationTableName = "Customer"; bulk.UseAudit = true; bulk.AuditMode = AuditModeType.ExcludeAll; bulk.ColumnMappings.Add( new ColumnMapping<Customer>("CustomerID", true) { AuditMode = ColumnMappingAuditModeType.Include } ); bulk.ColumnMappings.Add( new ColumnMapping<Customer>("Name") { AuditMode = ColumnMappingAuditModeType.Include } ); bulk.BulkMerge(list); auditEntries = bulk.AuditEntries; } // Result FiddleHelper.WriteTable(auditEntries.SelectMany(x => x.Values));
Try it: .NET Core | .NET Framework
Result
We outputted all AuditEntryItem
auditing metadata. The only information that appears is about the CustomerID
and Name
property.