首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用子实体使用efcore.bulkextensions的BulkInsertOrUpdate

使用子实体使用efcore.bulkextensions的BulkInsertOrUpdate
EN

Stack Overflow用户
提问于 2020-09-24 15:06:19
回答 1查看 1.4K关注 0票数 1

我使用BulkInsertOrUpdateAsync方法来插入net-Core3.0中的20000条记录。执行此操作时没有任何错误。它将所有具有父实体和子实体的记录都插入数据库。

代码语言:javascript
复制
var bulkConfig = new BulkConfig()
            {
                SetOutputIdentity = true,
                PreserveInsertOrder = true
            };   
var subEntities = new List<ItemHistory>(); 
await _dbContext.BulkInsertOrUpdateAsync(entities, bulkConfig);
    
foreach (var entity in entities)
{
   foreach (var subEntity in entity.ItemHistories)
    {
     subEntity.ItemId = entity.ID; // setting FK to match its linked PK that was generated in DB
    }
    subEntities.AddRange(entity.ItemHistories);
}
await _airportDBContext.BulkInsertOrUpdateAsync(subEntities})

但是当我将记录签入数据库时,许多具有子实体的记录引用了错误的'ItemId‘。即使当我再次使用现有记录执行此操作时,它也会再次将一些记录插入到子实体中。而父实体在这两种情况下都工作得很好。我的代码中有什么问题吗?或者这是这个包的一个已知问题?

我指的是这个https://github.com/borisdj/EFCore.BulkExtensions#read-example

它可能与这个问题相同:- https://www.bountysource.com/issues/76836788-bulkinsertorupdateasync-ids-not-setting-correctly

你们谁有办法克服这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-11 15:01:18

以下是这个问题的答案

代码语言:javascript
复制
var bulkConfig = new BulkConfig()
            {
                SetOutputIdentity = true,
                PreserveInsertOrder = true
            };   
var subEntities = new List<ItemHistory>(); 
entities = entities.ForEach(i => i.ID == 0);
await _dbContext.BulkInsertOrUpdateAsync(entities, bulkConfig);

    
foreach (var entity in entities)
{
   foreach (var subEntity in entity.ItemHistories)
    {
     subEntity.ItemId = entity.ID; // setting FK to match its linked PK that was generated in DB
    }
    subEntities.AddRange(entity.ItemHistories);
}
await _airportDBContext.BulkInsertOrUpdateAsync(subEntities});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64041166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档