C# DTO 获取实体的 Id
C# DTO get Id of Entity
当我想使用 DTO 创建一个实体时,我想在我的控制器中的 DTO 中获取最近插入的实体的 ID。
控制器:
public ActionResult Create(HotelsViewModel hotelsViewModel)
{
if (ModelState.IsValid)
{
HotelsDTO hotelDTO = _mapper.Map<HotelsDTO>(hotelsViewModel);
_hotelService.Create(hotelDTO);
_hotelService.AddHotelAmenities(hotelDTO.Id, hotelsViewModel.SelectedAmenities);
return RedirectToAction("Index");
}
return View(hotelsViewModel);
}
服务:
要在我的控制器中取回 Id,我应该将 Create 方法的 return 类型更改为整数,还是有其他方法可以实现此目的?
public void Create(TDTO entity)
{
T t = _mapper.Map<T>(entity);
_repository.Create(t);
_unitOfWork.Commit();
}
保存更改被命中后,t 的 ID 被设置,但我无法在控制器中检索我的 DTO 对象中的 ID。
有什么建议吗?
您可以在提交更改后立即添加 entity.Id = t.Id;
,即紧跟在行之后:_unitOfWork.Commit();
当我想使用 DTO 创建一个实体时,我想在我的控制器中的 DTO 中获取最近插入的实体的 ID。
控制器:
public ActionResult Create(HotelsViewModel hotelsViewModel)
{
if (ModelState.IsValid)
{
HotelsDTO hotelDTO = _mapper.Map<HotelsDTO>(hotelsViewModel);
_hotelService.Create(hotelDTO);
_hotelService.AddHotelAmenities(hotelDTO.Id, hotelsViewModel.SelectedAmenities);
return RedirectToAction("Index");
}
return View(hotelsViewModel);
}
服务:
要在我的控制器中取回 Id,我应该将 Create 方法的 return 类型更改为整数,还是有其他方法可以实现此目的?
public void Create(TDTO entity)
{
T t = _mapper.Map<T>(entity);
_repository.Create(t);
_unitOfWork.Commit();
}
保存更改被命中后,t 的 ID 被设置,但我无法在控制器中检索我的 DTO 对象中的 ID。
有什么建议吗?
您可以在提交更改后立即添加 entity.Id = t.Id;
,即紧跟在行之后:_unitOfWork.Commit();