gpt4 book ai didi

c# - 使用 LINQ 更新 SQL 行中的每个字段而不具体声明每个字段?

转载 作者:行者123 更新时间:2023-11-30 21:46:45 26 4
gpt4 key购买 nike

我只是想知道是否有一种方法可以更新 SQL 行中的每个字段/属性,而不必为每个字段显式声明“context.FieldName = model.FieldName”。

我尝试做的是:

  1. 将更新后的模型对象传递给方法。
  2. 根据模型对象的ID从数据库上下文中获取DTO对象
  3. 如果不为空,使用 AutoMapper,将模型对象转换为 DTO 对象
  4. 现在将原始 DTO 对象设置为新映射的 DTO 对象
  5. 更新数据库(这是它失败的地方)
  6. 保存上下文

但是如果我明确地将每个 DTO 字段设置为对应的模型字段,它就可以工作(很明显)。但由于频繁的数据库更改,以及大量的 SQL 字段,我希望避免每次数据库更改时手动更新每个字段并维护它。

最佳答案

如果你使用最新版本的automapper,你可以这样做:

public void UpdateCustomer(Customer customer)
{
var customerTopdate=dbContext.Customers.Where(c=>c.Id=customer.Id);
var result=AutoMapper.Map<Customer>(customer,customerTopdate);
dbContext.SaveChanges();
}

关于c# - 使用 LINQ 更新 SQL 行中的每个字段而不具体声明每个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com