在多层应用(N-Tier)环境中,如何更新对象是一个复杂的话题。在这篇文章中,讨论了最新的ADO.NET Entity Framework 4 Beta 2(以下简称EF4)如何实现在多层应用中,中间层如何完成对象的更新操作。下面例子对于Web应用(如ASP.NET MVC)来说尤其具有参考价值,因为在Web环境下,中间层和客户端无法共享实体对象,因而无法利用跟踪实体发生的变化。

新的EF4为多层应用环境提供了许多新的工具和方法,包括:一个Attached实体的所有属性均标记为”修改“状态。

下面的例子中,Product实例的新旧值均传递给了UpdateProductChanges方法 ,这样可以避免到数据库中查询或在内存中保存待更新对象的旧值。对于ASP.NET MVC,originalProduct对象可以保存在Form的某个Hidden元素中,提交Form时将其一并传递给Action。  

}

 

 

 

 

 下面的例子展示了在没有给出旧的对象的情况下,如何进行对象更新 : 

}

 

 [更新]

在上面的第二种方法中,实体的原值是从数据库或当前Context中获取的,在ASP.NET MVC中,往往是在Action中创建一个新的Context,在这种应用环境下,原值基本上都是从数据库中获取。有什么方法能够既不需要提供实体的原值,也能够避免从数据库中检索原值所带来的额外负载呢?

新的EF4为我们提供了一个便捷的方法,

 

}

 

而在EF1中,则需要这样:

 

}

 

相关文章:

  • 2021-08-10
  • 2021-12-03
  • 2022-12-23
  • 2021-12-10
  • 2021-11-24
  • 2021-10-05
  • 2021-12-03
  • 2021-12-24
猜你喜欢
  • 2022-12-23
  • 2021-09-09
  • 2021-05-21
  • 2022-01-23
  • 2022-12-23
  • 2021-10-09
  • 2021-06-27
相关资源
相似解决方案