我编写了以下代码来插入记录Product basic信息和属性:
foreach (var item in records)
{
var productList = new ProductsList()
{
CreatedDate = DateTime.Now,
ItemGroup = item.ItemGroup,
ItemType = item.itemType,
LegalEntitiesId = legalEntityId,
PostedToOtherSys = false,
ProductName = item.prodName,
ProductNumber = item.prodid,
UOM = item.UOM,
};
foreach (var attribute in item.attributes)
{
var productListAttributeValues = new ProductListAttributeValues()
{
CreatedDate = DateTime.Now,
Name = attribute.Name,
Value = attribute.type
};
productList.ProductListAttributeValues.Add(productListAttributeValues);
}
_unitOfWork.productsListRepository.Add(productList);
_unitOfWork.Save();
}
}我正在使用efcore.bulkextensions库,但我不知道如何在基于文档的外键关系存在时插入基实体和子实体:
我试着这样做:
_unitOfWork.productsListRepository.BulkAdd(listOfProducts);
foreach (var entity in listOfProducts)
{
foreach (var subEntity in entity.ProductListAttributeValues)
{
subEntity.ProductsListId = entity.Id; // setting FK to match its linked PK that was generated in DB
listOfProductsAttributes.Add(subEntity);
}
_unitOfWork.productListAttributeValuesRepository.AddRange(entity.ProductListAttributeValues.ToList());
}
_unitOfWork.productListAttributeValuesRepository.BulkAdd(listOfProductsAttributes);发布于 2021-05-27 22:16:32
您必须将BulkConfig选项添加到底层dbContext.BulkInsert调用中,如下所示:
_context.BulkInsert(, new BulkConfig { IncludeGraph = true });
https://stackoverflow.com/questions/65938327
复制相似问题