gpt4 book ai didi

c# - .NET c# 如何使用 linq2db 批量插入?

转载 作者:行者123 更新时间:2023-11-30 19:56:12 25 4
gpt4 key购买 nike

我目前正在使用 Linq2db用于使用我的 C# 应用程序管理我的 sqlite 数据库。现在我正在读取一个包含 24k+ 行的 excel 文件,我想知道如何才能加快我的 ETL 过程?

for (int row = start.Row; row <= end.Row; row++)
{
if (row == 1) // Title row
continue;

Stock stock = new Stock(Processor.GetStore(workSheet.Cells[row, 1].Text),
Processor.GetProduct(workSheet.Cells[row, 2].Text),
int.Parse(workSheet.Cells[row, 6].Text),
int.Parse(workSheet.Cells[row, 7].Text),
int.Parse(workSheet.Cells[row, 8].Text), 0, true);

Processor.AddStock(stock, false);

}

使用 linq 尝试了不同的方法,但我得到了更糟糕的计时结果...

            var stocks = (from cell in workSheet.Cells["a:h"]
select new Stock(Processor.GetStore(workSheet.Cells[cell.Start.Row, 1].Text),
Processor.GetProduct(workSheet.Cells[cell.Start.Row, 2].Text),
int.Parse(workSheet.Cells[cell.Start.Row, 6].Text),
int.Parse(workSheet.Cells[cell.Start.Row, 7].Text),
int.Parse(workSheet.Cells[cell.Start.Row, 8].Text), 0, true)).ToList();

我正在寻找的是这样的东西:

public static void MassStockInsert(List<Stock> stocks)
{
using (var db = new Processor())
{
db.Stock
.insert(stocks);
}
Processor.Stocks = ReloadStocks();
}

最佳答案

使用批量复制方法。

public static void MassStockInsert(List<Stock> stocks)
{
using (var db = new Processor())
{
db.BulkCopy(stocks);
}
Processor.Stocks = ReloadStocks();
}

关于c# - .NET c# 如何使用 linq2db 批量插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34459169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com