Обновите новую сущность перед фиксацией с помощью _unitOfWorkManager - PullRequest
0 голосов
/ 05 апреля 2019

В моем сервисе (class MyService : AbpServiceBase) я пытаюсь сделать следующее:

  • Вставить объект в SQL и получить Id
  • Выполнить вызов REST длявнешней системы и получите этот systemId
  • Обновите поле в исходной сущности с помощью systemId

Полученная ошибка:

Ожидается, что операция базы данных повлияет1 ряд (а), но фактически затронули 0 ряд (ы)

[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;
}

Ответы [ 2 ]

0 голосов
/ 13 апреля 2019

Всегда так просто, когда знаешь ответ ... Все, что требовалось, это аннотация. Надеюсь, что другие тоже выиграют от этого.

[UnitOfWork (IsDisabled = true)]

0 голосов
/ 13 апреля 2019

Вам не нужно 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;
}
...