如何从业务层使用实体框架更新实体

本文关键字:实体 框架 更新 业务 | 更新日期: 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();
}