我读过自跟踪实体(STE)现在已过时,Microsoft不再投资。

我目前正在开发一个n层应用程序,其中客户端代码正在对WCF服务进行方法调用以获取自跟踪实体。我的客户端代码中没有DBContext这样的东西:它仅处理实体本身。

由于自我跟踪实体在其内部具有变更跟踪代码,因此客户端代码可以轻松地与它们一起使用,并且很容易将更改实际推回到数据库中。

我已经尝试过EF4 DBContext Generator t4模板,但是它们会生成对持久性要求不高的实体,因此,我的客户端代码无法与它们一起使用来跟踪对STE所做的更改。

是否可以从这样的项目迁移到基于DBContext的项目,而不必重写大量的客户端代码以及WCF服务代码?

最佳答案

STE Generator template for EF 5.x,其信息页显示:


  我们不再建议在新应用程序中使用STE模板,
  继续可用于支持现有应用程序。前往
  “ N层应用程序”页面提供了我们建议用于N层的其他选项
  场景。


那回答了你的问题。如果要使用STE而不重写应用程序,则应使用模板和ObjectContext。从理论上讲,您可以使用DbContext,因为您可以从现有的DbContext(通过构造函数)创建ObjectContext的新实例。我不确定STE会带来什么好处。

MS将WCF数据服务及其客户端上下文视为STE的替代。

09-27 12:56