我不确定这是否有意义,但这是一个例子。
我有一个Category对象,我的服务交给Controller,后者使用AutoMapper创建一个CategoryViewModel。把它交给视线,送给客户。
现在,当回发后,AutoMapper会从发回的模型中创建一个类别,然后将其交给服务,该服务将其提供给存储库以保留到数据库。
我的问题是,这样做的正确方法是什么?我假设对象在回发时是一个分离的对象,我需要将它附加到上下文,将其标记为脏并保存更改?
答案 0 :(得分:3)
基本上有两种方式来更新实体:
ObjectStateManager.ChangeObjectState Method
将其标记为已修改,调用ObjectContext.SaveChanges Method
ObjectContext.ApplyCurrentValues<TEntity> Method
将更改应用于原始实体,致电ObjectContext.SaveChanges Method
每个人都有自己的优点和缺点。例如,第一个不进行往返以获取原始实体但是无法解决并发问题以及尝试更新实体的每个属性,而第二个在使用乐观并发时效果最佳,仅更新已更改的属性,但它确实为Db做了额外的旅行以获得原始实体。
答案 1 :(得分:-1)
“我假设对象在回发时是一个分离的对象,我需要将它附加到上下文,将其标记为脏并保存更改?”
是
此页面上的任何一个链接都应该有所帮助: