是的,可以添加硬编码公式。
这是使用 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 是将更新数据的表。所以TARGET
你的例子中的表格。
暂存表
StagingTable 是从中获取数据以进行更新的表。所以SOURCE
你的例子中的表格。