Я пытаюсь использовать Linqtodb Merge для вставки/обновления таблицы назначения. ProductId и PulfierId ?
Я немного прочитал о MergeWithOutputInto () , думая, что у него могут быть ключи, но я не нашел никаких примеров, чтобы выяснить вопрос. /> [*] Вставьте продукт
[*] Вставьте продукты, что работает, что работает, что поверхностно отличается от того, как работает context.addrange () , поскольку он обрабатывает неявную вставку
Меня мысли о том, что этот инструмент будет более эффективным и подходящим с помощью больших данных (миллионы). Могу ли я объединить оба вставки в это единое целое или мне нужно, например, addrange () из другой библиотеки для обработки этой детали?using LinqToDB;
using LinqToDB.EntityFrameworkCore;
using var db = context.CreateLinqToDBConnection();
// productsToAdd is generated from a linq query using another query result from the source table - etl is needed.
using var temp = db.CreateTempTable(productsToAdd);
var fs = FormattableStringFactory.Create($"SET IDENTITY_INSERT #Product ON");
context.Database.ExecuteSql(fs);
var destinationTable = context.Products.ToLinqToDBTable();
destinationTable
.Merge()
.Using(temp)
.On((target, source) => target.Sku == source.Sku)
.InsertWhenNotMatched(source => new Product()
{
Name = source.Name,
Sku = source.Sku,
// this section fails because the Id for Product is not yet available.
ProductSuppliers = new List()
{
new ProductSupplier()
{
SupplierId = supplierId
}
}
})
.Merge();
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... ry-inserts
Linqtodb Помощь, необходимая для слияния и вторичных вставки ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Диагностика дублирующих вставки после слияния/upsert с Deltalake (Python)
Anonymous » » в форуме Python - 0 Ответы
- 1 Просмотры
-
Последнее сообщение Anonymous
-