我的Web应用程序由3层,控制器,业务逻辑和存储库构成。
从BL层我用以下代码更新实体。如您所见,我正按物业更新物业。
我想知道是否有更好的方法,删除此手动映射。
---------------------- CONTROLLER
public IHttpActionResult Put(int id, DeviceDTO dto)
{
GaDevice device = Mapper.Map<GaDevice>(dto);
deviceBLL.Update(id, device);
return Ok();
}
---------------------- BL
public void Update(int id, GaDevice entity)
{
bool hasValidId = GetById(id) != null ? true : false;
if (hasValidId == true)
{
GaDevice device = deviceRepo.GetById(id);
device.CanNotifyPc = entity.CanNotifyPc; // NOT SURE HERE
device.CanNotifyPrinter = entity.CanNotifyPrinter;
device.LocationId = entity.LocationId;
device.Name = entity.Name;
device.Note = entity.Note;
device.OperativeFromTime = entity.OperativeFromTime;
device.OperativeToTime = entity.OperativeToTime;
deviceRepo.Update(device );
deviceRepo.Save();
}
----------------存储库
public void Update(GaDevice entity)
{
context.Entry(entity).State = EntityState.Modified;
}
答案 0 :(得分:1)
如何保存context
中对Update()
所做的更改?
否则,Save()
中的代码会做什么?
public void Update(GaDevice entity)
{
context.Entry(entity).State = EntityState.Modified;
context.SaveChanges();
}