如何从业务层使用实体框架更新实体
本文关键字:实体 框架 更新 业务 | 更新日期: 2023-09-27 18:10:49
我的web应用程序有3层结构,控制器,业务逻辑和存储库。
从BL层,我正在用以下代码更新实体。正如你所看到的,我正在一个属性一个属性地更新。
我想知道是否有更好的方法来做到这一点,删除这个手动映射。
---------------------- 控制器
public IHttpActionResult Put(int id, DeviceDTO dto)
{
GaDevice device = Mapper.Map<GaDevice>(dto);
deviceBLL.Update(id, device);
return Ok();
}
---------------------- 提单
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;
}
如何将对context
所做的更改保存在Update()
中?否则,你的代码在Save()
做什么?
public void Update(GaDevice entity)
{
context.Entry(entity).State = EntityState.Modified;
context.SaveChanges();
}