Link Search Menu Expand Document

FirebirdCommandBatcherMapItem


This class extends BulkInsertMapItem with an optional, explicit FbDbType to bind with for the mapped column. When not provided, the bind parameter’s wire format is determined by Firebird’s DSQL layer from the destination column’s own server-side type, not the client-declared type — so this is only an escape hatch for genuinely ambiguous cases (e.g. forcing a specific BLOB sub-type).

Used by the Firebird BulkInsert, BulkMerge and BulkUpdate operations.

Create a new Instance

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

Or with an explicit FbDbType:

var mapItem = new FirebirdCommandBatcherMapItem("SourceBlob", "DestinationBlob", FbDbType.Binary);

Usage for BulkOperations

var mappings = new []
{
    new FirebirdCommandBatcherMapItem("FirstName", "FName"),
    new FirebirdCommandBatcherMapItem("LastName", "LName"),
    new FirebirdCommandBatcherMapItem("Photo", "Photo", FbDbType.Binary)
};

using (var connection = new FbConnection(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).