bool InsertTriangle(List<TriangleEntity> triangleEntities) {
var insert = new Insert(_systemUserConnection).Into("TrianglePlanFact");
var counter = 0;
var insertLimit = 100;
var rowNumber = HaleonSqlHelper.GetRowCount(_systemUserConnection, "nbcTrianglePlanFact");
var mask = (string)SysSettings.GetValue(_systemUserConnection, "TriangleMask");
CollectionUtilities.ForEach(triangleEntities, item => {
var product = item.ProductEntity;
counter++;
rowNumber++;
var number = string.Format(mask, rowNumber);
insert.Values()
.Set("Name", Column.Parameter(number))
.Set("ProductGMMId", Column.Parameter(product.ProductId))
.Set("MaterialDescription", Column.Parameter(product.Brand))
.Set("Brand", Column.Parameter(product.Brand))
.Set("Plant", Column.Parameter(product.Plant))
.Set("Sku", Column.Parameter(product.Sku))
.Set("Period", Column.Parameter(item.Period))
.Set("Version", Column.Parameter(item.Version));
if (counter % insertLimit == 0) {
insert.Execute();
insert.ResetParameters();
}
});
if (counter % insertLimit != 0) {
insert.Execute();
}
return true;
}
Код выше работает с коллекцией записей, добавляя значеия колонок в общую коллекцию для вставки, после того как достигли лимита в 100 записей при вставке, он выполняет инсерт и очищает параметры(я так думал), но я все равно ухожу в лимит 2100 при 300 записях, т.е 800 * 3 = 2400, как после каждого execute очищать параметры и как правильно делать подобные вставки?