List<DfmeaDataModel> dfList = new List<DfmeaDataModel>(); var import = ObjectMapper.Map<DfmeaDto, DfmeaDataModel>(input); import.CreateTime = DateTime.Now; import.CreateId = _femaAuth.CurrentUserGuid; dfList.Add(import); var df = await _dfmeaDataRepository.GetDfmeaDataModelsAfterSortIdAsync(input.FemaId, input.Sort); await _dfmeaDataRepository.DeleteManyAsync(df); var dfs = await _dfmeaDataRepository.GetDfmeaDataModelsAfterSortIdAsync(input.FemaId, input.Sort); foreach (var item in df) { item.Sort++; dfList.Add(item); } await _dfmeaDataRepository.InsertManyAsync(dfList);这里dfs任然显示能查到数据
时间: 2024-02-10 14:16:02 浏览: 150
根据你提供的代码,可能是因为在删除完数据之后,获取 `dfs` 的代码没有等待删除操作完成,导致查询到的数据仍然存在。你可以将删除操作和查询操作都放在同一个事务中,确保删除操作完成后再进行查询,可以避免这种问题。以下是修改后的代码示例:
```csharp
public async Task UpdateDfmeaDataAsync(DfmeaDto input)
{
using (var uow = _unitOfWorkManager.Begin())
{
List<DfmeaDataModel> dfList = new List<DfmeaDataModel>();
var import = ObjectMapper.Map<DfmeaDto, DfmeaDataModel>(input);
import.CreateTime = DateTime.Now;
import.CreateId = _femaAuth.CurrentUserGuid;
dfList.Add(import);
var df = await _dfmeaDataRepository.GetDfmeaDataModelsAfterSortIdAsync(input.FemaId, input.Sort);
await _dfmeaDataRepository.DeleteManyAsync(df);
foreach (var item in df)
{
item.Sort++;
dfList.Add(item);
}
await _dfmeaDataRepository.InsertManyAsync(dfList);
await uow.CompleteAsync();
var dfs = await _dfmeaDataRepository.GetDfmeaDataModelsAfterSortIdAsync(input.FemaId, input.Sort);
// 使用 dfs 进行下一步操作
}
}
```
在上述代码中,我们使用了 using 语句块来创建一个新的工作单元,并在 using 语句块结束时自动提交事务。这样可以确保删除操作的生效,并且确保删除操作完成后再进行查询。
阅读全文