我读过自跟踪实体(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的替代。