【发布时间】:2020-08-20 23:16:12
【问题描述】:
EF Core Bulk 扩展有没有办法只更新前几 10000 行?写消息,更新下一批,循环写消息直到完成?
我知道有Batch Size,但是如果只有500万要更新,我只想更新一定数量,写一条消息,不断循环直到完成,怎么办?
我应该使用 Top 还是 Take?
我想写“你好”,每隔几批。
while {
await _dbContext.Set<Product>()
.Where(x => x.Manufacturer == "ABC Company" &&
x.StartYear == 2019 &&
x.ProductType.ProductTypeDescription == "Electronics")
.BatchUpdateAsync(x => new Product(){
Manufacturer = "XYZ Company",
StartYear = 2020 });
Console.WriteLine("hello"):
https://github.com/borisdj/EFCore.BulkExtensions
使用 EF Core 3.1。
公司不想使用 SignalR
【问题讨论】:
-
使用像stackoverflow.com/questions/35903375/…这样的sql? BatchUpdateAsync 返回行数,因此您可以使用
$"SET rowcount {n}"原始 sql。
标签: c# .net .net-core entity-framework-core