在使用 _unitOfWorkManager 提交之前更新新实体
Update a new entity before committing with _unitOfWorkManager
在我的服务 (class MyService : AbpServiceBase
) 中,我正在尝试执行以下操作:
- 将实体插入 SQL 并检索 ID
- 对外部系统进行 REST 调用并检索该 systemId
- 使用 systemId 更新原始实体中的字段
我得到的错误:
Database operation expected to affect 1 row(s) but actually affected 0 row(s)
[UnitOfWork(isTransactional: false)]
public async Task<Guid> CreateAsync(InfoDto myInfo)
{
int? tenantId = _unitOfWorkManager.Current.GetTenantId();
objInfo = await _infoRepository.InsertAsync(myInfo);
newObjId = CreateNewIdentifier(tenantId);
objInfo.ExternalIdentifier = newObjId;
await _infoRepository.UpdateAsync(objInfo);
return objInfo.Id;
}
您不需要 UpdateAsync
。 objInfo
已被跟踪。
[UnitOfWork(isTransactional: false)]
public async Task<Guid> CreateAsync(InfoDto myInfo)
{
int? tenantId = _unitOfWorkManager.Current.GetTenantId();
objInfo = await _infoRepository.InsertAsync(myInfo);
newObjId = CreateNewIdentifier(tenantId);
objInfo.ExternalIdentifier = newObjId;
// await _infoRepository.UpdateAsync(objInfo); // Remove this
return objInfo.Id;
}
一旦你知道答案,它总是那么简单......所需要的只是一个注释。希望其他人也能从中受益。
[工作单元(IsDisabled = true)]
在我的服务 (class MyService : AbpServiceBase
) 中,我正在尝试执行以下操作:
- 将实体插入 SQL 并检索 ID
- 对外部系统进行 REST 调用并检索该 systemId
- 使用 systemId 更新原始实体中的字段
我得到的错误:
Database operation expected to affect 1 row(s) but actually affected 0 row(s)
[UnitOfWork(isTransactional: false)]
public async Task<Guid> CreateAsync(InfoDto myInfo)
{
int? tenantId = _unitOfWorkManager.Current.GetTenantId();
objInfo = await _infoRepository.InsertAsync(myInfo);
newObjId = CreateNewIdentifier(tenantId);
objInfo.ExternalIdentifier = newObjId;
await _infoRepository.UpdateAsync(objInfo);
return objInfo.Id;
}
您不需要 UpdateAsync
。 objInfo
已被跟踪。
[UnitOfWork(isTransactional: false)]
public async Task<Guid> CreateAsync(InfoDto myInfo)
{
int? tenantId = _unitOfWorkManager.Current.GetTenantId();
objInfo = await _infoRepository.InsertAsync(myInfo);
newObjId = CreateNewIdentifier(tenantId);
objInfo.ExternalIdentifier = newObjId;
// await _infoRepository.UpdateAsync(objInfo); // Remove this
return objInfo.Id;
}
一旦你知道答案,它总是那么简单......所需要的只是一个注释。希望其他人也能从中受益。
[工作单元(IsDisabled = true)]