C# 使用DB Contex(EF)批量插入(少于100个实体)的最佳方法是什么?
我正在编写一个WebApi解决方案,该体系结构是以一种只有控制器层可以使用工作单元提交(保存数据库中的更改)的方式完成的。我需要进行批量插入(少于100个实体)。我试着用下面的方法C# 使用DB Contex(EF)批量插入(少于100个实体)的最佳方法是什么?,c#,entity-framework,asp.net-web-api,batch-insert,C#,Entity Framework,Asp.net Web Api,Batch Insert,我正在编写一个WebApi解决方案,该体系结构是以一种只有控制器层可以使用工作单元提交(保存数据库中的更改)的方式完成的。我需要进行批量插入(少于100个实体)。我试着用下面的方法 foreach (var req in Reqs) { await unitOfWork.GetService<IReqService>().AddNewReq(req); try {
foreach (var req in Reqs)
{
await unitOfWork.GetService<IReqService>().AddNewReq(req);
try
{
await unitOfWork.Commit();
}
catch (Exception e) { }
}
工作单元的目的是将上下文中的操作视为单个单元。如果你有可以独立成功或失败的操作,那么这些操作应该由单独的工作单元来限制。@StevePy好的,我认为这是有道理的,我的架构并不是用来帮助我做这些事情的。我只是想确保我没有遗漏什么!
public async Task Commit()
{
if (_tenantDatabase != null)
await _tenantDatabase.SaveChangesAsync();
}