我正在使用这种Service Layer --> Repository --> Entity Framework (Code-First) w/POCO objects
方法,并且很难更新实体。
我正在使用 AutoMapper 将我的域对象映射到我的视图模型,这对于获取数据很有用,不知道如何将这些更改恢复到数据库中?
使用纯 POCO 对象,我会假设没有任何变化跟踪,所以我看到我唯一的选择是自己处理它。您是否只是确保您的视图模型具有与您的域对象完全相同的属性?如果我只是更改视图模型上的一两个字段怎么办?域对象上的其余字段不会在数据库中被默认值覆盖吗?
话虽如此,最好的方法是什么?
谢谢!
编辑
所以我绊倒的是这个,让我们举一个简单的例子Customer
:
1)Controller
有一个CustomerService
调用 servicesGetCustmoerByID
方法的服务。
2)Service
调用CustomerRepository
并检索Customer
对象。
3)Controller
使用 AutoMapper 映射Customer
到ViewModel
.
4)Controller
将模型交给View
. 一切都很好!
现在在视图中,您对客户进行了一些修改并将其发布回控制器以将更改持久保存到数据库中。
我会假设此时对象已分离。那么模型应该具有与对象完全相同的属性Customer
吗?并且您是否必须为您不想显示的每个项目创建隐藏字段,以便它们可以保留回来?
您如何处理将对象保存回数据库?如果您的视图/模型只处理对象上的几个字段会发生什么?