Да, можно добавить жестко закодированную формулу.
Вот пример с использованием PostConfiguration: https://dotnetfiddle.net/s8QF4t
context.BulkMerge(list, options => {
options.PostConfiguration = bulk => {
bulk.ColumnMappings.Single(x => x.SourceName == "Description").FormulaUpdate = "DestinationTable.Name + ';' + StagingTable.Description";
};
});
Вот пример, отображающий все ваши столбцы: https://dotnetfiddle.net/enOEQF
context.BulkMerge(list, options => {
options.ColumnMappings.Add(new Z.BulkOperations.ColumnMapping<Customer>(x => x.CustomerID, true));
options.ColumnMappings.Add(new Z.BulkOperations.ColumnMapping<Customer>(x => x.Name));
var columnMapping = new Z.BulkOperations.ColumnMapping<Customer>(x => x.Description);
columnMapping.FormulaUpdate = "DestinationTable.Name + ';' + StagingTable.Description";
options.ColumnMappings.Add(columnMapping);
});
Оба примера объединяют 2 поля, но, как вы видите, вы можете использовать любую формулу. Важно использовать DestinationTable
и StagingTable
псевдоним
DestinationTable
DestinationTable - это таблица, в которой будут обновляться данные. Таким образом, таблица TARGET
в вашем примере.
StagingTable
StagingTable - это таблица, из которой взяты данные для обновления. Итак, таблица SOURCE
в вашем примере.