我正在使用“服务层->存储库->实体框架(Code-First) w/POCO对象”方法,并且我在更新实体方面遇到了困难。
我使用AutoMapper将我的域对象映射到我的视图模型,这对于获取数据很有用,现在该如何将更改保存回数据库呢?
使用纯POCO对象,我认为没有任何形式的更改跟踪,所以我认为我唯一的选择是自己处理。你只需确保你的视图模型与你的域对象具有完全相同的属性吗?如果我只在视图模型上更改一个或两个字段,那么域对象中的其余字段不会被默认值覆盖吗?
那么,最好的方法是什么?
谢谢!
编辑
所以我遇到的问题是这样的,我们以一个简单的“客户”为例:
1)控制器有一个服务,“CustomerService”,它调用服务的“GetCustmoerByID”方法。
2)服务调用“CustomerRepository”并检索“Customer”对象。
3)控制器使用AutoMapper将“Customer”映射到“ViewModel”。
4)控制器将模型交给“View”。一切都很好!
现在,在视图中,您对客户进行了一些修改,并将其发送回控制器以将更改保存到数据库。
我假设此时对象已分离。那么,模型是否应该与“Customer”对象具有完全相同的属性?您是否必须为每个不想显示的项目创建隐藏字段,以便它们可以持久化回来?
如何处理将对象保存回数据库?如果您的视图/模型仅涉及对象的一些字段会发生什么?
我使用AutoMapper将我的域对象映射到我的视图模型,这对于获取数据很有用,现在该如何将更改保存回数据库呢?
使用纯POCO对象,我认为没有任何形式的更改跟踪,所以我认为我唯一的选择是自己处理。你只需确保你的视图模型与你的域对象具有完全相同的属性吗?如果我只在视图模型上更改一个或两个字段,那么域对象中的其余字段不会被默认值覆盖吗?
那么,最好的方法是什么?
谢谢!
编辑
所以我遇到的问题是这样的,我们以一个简单的“客户”为例:
1)控制器有一个服务,“CustomerService”,它调用服务的“GetCustmoerByID”方法。
2)服务调用“CustomerRepository”并检索“Customer”对象。
3)控制器使用AutoMapper将“Customer”映射到“ViewModel”。
4)控制器将模型交给“View”。一切都很好!
现在,在视图中,您对客户进行了一些修改,并将其发送回控制器以将更改保存到数据库。
我假设此时对象已分离。那么,模型是否应该与“Customer”对象具有完全相同的属性?您是否必须为每个不想显示的项目创建隐藏字段,以便它们可以持久化回来?
如何处理将对象保存回数据库?如果您的视图/模型仅涉及对象的一些字段会发生什么?