using (var ctx = new EfDbContext()) { var customer = GetCustomer(); var dataBaseCustomer = ctx.Customers .FirstOrDefault(d => d.Id == customer.Id); if (dataBaseCustomer != null) { ctx.Entry(dataBaseCustomer).CurrentValues.SetValues(customer); if (ctx.SaveChanges() > 0) { Console.WriteLine("更新成功"); } else { Console.WriteLine("更新失败"); } } };
用 ctx.Entry(dataBaseCustomer).CurrentValues.SetValues(customer);解决dto和数据库实体之间传参问题。