В EntityFramework SaveChangesAsync()
возвращает int. Таким образом, вы можете проверить, является ли это > 0
или нет.
Если что-то случится с SaveChangesAsync()
, будет возвращено количество обработанных строк, и это означает, что if value > 0
затем true. Так просто, вы можете иметь следующие сценарии:
ВСТАВИТЬ
public Task<bool> CreateEntity(Entity entity){
if(entity == null)
return false;
await _dataContext.Entities.AddAsync(entity);
var created = await _dataContext.SaveChangesAsync();
return created > 0;
}
ОБНОВЛЕНИЕ
public async Task<bool> UpdateEntity(Entity entityToUpdate)
{
if(entityToUpdate == null)
return false;
_dataContext.Posts.Update(entityToUpdate);
var updated = await _dataContext.SaveChangesAsync();
return updated > 0;
}
УДАЛИТЬ
public async Task<bool> DeleteEntity(int entityId)
{
var entity = await _dataContext.Entities.FindAsync(entityId);
if (entity == null)
return false;
_dataContext.Entities.Remove(entity);
var deleted = await _dataContext.SaveChangesAsync();
return deleted > 0;
}
И в ваших методах теперь вы можете просто проверить, успешно ли это изменение:
Для простого сценария MVC:
public Task<IActionResult> CreateEntity(EntityModel model)
{
if(model == null)
return StatusCode(404);
var entity = new Entity
{
attribute1 = model.attribute1,
attribute2 = model.attribute3
};
var isCreated = await _entityService.CreateEntity(entity);
if(isCreated)
{
//do something and return a view.
}
else
{
//you can return a status code, or an error view.
}
}
Вы можете сделать то же самое для обновления и удаления.
person
Burak
schedule
31.12.2019