Link Search Menu Expand Document

EDBBulkInsertMapItem


This class extends BulkInsertMapItem with an optional, explicit RepoDb.Connector.EnterpriseDb.EDBType to bind with for the mapped column. When not provided, the type is inferred from the entity property’s [EDBType] attribute (if present) or, failing that, from the .NET CLR value itself.

Used by the EnterpriseDB BulkInsert, BulkMerge and BulkUpdate operations. Mappings are also type-checked: if a mapping’s source and destination CLR types are incompatible (other than the allowed Guidstring and integral-to-integral widenings), the write throws an InvalidTypeException up front rather than failing inside EnterpriseDB.

Create a new Instance

var mapItem = new EDBBulkInsertMapItem("SourceId", "DestinationId");

Or with an explicit EDBType:

var mapItem = new EDBBulkInsertMapItem("SourceName", "DestinationName", EDBType.Varchar);

Usage for BulkOperations

var mappings = new []
{
    new EDBBulkInsertMapItem("FirstName", "FName"),
    new EDBBulkInsertMapItem("LastName", "LName")
};

using (var connection = new EDBConnection(connectionString))
{
    var people = GetPeople(100000);
    connection.BulkInsert(people, mappings: mappings);
}

The same approach applies to BulkMerge and BulkUpdate. The mappings argument is optional — omitting it causes the library to auto-map columns by name (case-insensitive).