我想知道是否建议在 WCF 服务中使用 Self Tacking Entities(在实体框架中)?如果是的话,那么你能指导我到一个可以指导如何做到这一点的教程吗?
实际上,我打算使用带有 MEF 和 MVVM 的 Prism 开发一个 WPF 应用程序。我决定使用实体框架。我想要关于这种方法的建议和建议。
任何帮助将不胜感激。
我想知道是否建议在 WCF 服务中使用 Self Tacking Entities(在实体框架中)?如果是的话,那么你能指导我到一个可以指导如何做到这一点的教程吗?
实际上,我打算使用带有 MEF 和 MVVM 的 Prism 开发一个 WPF 应用程序。我决定使用实体框架。我想要关于这种方法的建议和建议。
任何帮助将不胜感激。
我想知道是否建议在 WCF 服务中使用 Self Tacking Entities(在实体框架中)?
这取决于你问谁。如果你问 MS,他们会告诉你是的,因为他们根本没有更好的东西可以提供。STE 是对这个非常古老的MS Connect 建议的回应。问题是 EF 本身对合并两个实体图之间的更改有非常糟糕的支持(您必须完全自己完成),并且在 MS 平台上工作的开发人员(有时包括我)有一些共同的行为:
前两点是 MS 策略的结果,其中 RAD 成为设计师的同义词(或新的 T4 模板)。
我同意@Richard 对 STE 的看法。我要添加 STE 的另一个缺点——它们在参与者之间移动大型数据集。如果您决定从服务器获取实体图,则更改图中的单个实体并将数据推回它们将再次传输整个图。仅传输更改的实体会导致与 STE 的核心逻辑发生冲突。我还担心他们会完全跟踪每个实体级别而不是每个属性级别的更改。如果修改具有大型二进制或字符串数据的实体,可能会导致在服务和数据库之间以及服务和客户端之间传输过多不需要的数据。
无论如何,对于具有低数据流量和小型实体的简单应用程序,它们可以做得很好,并允许您快速构建应用程序,但无需严格分离关注点。您将从服务中获取实体并将它们直接绑定到 WPF UI,它们将能够为您跟踪更改。稍后您会将实体推送回服务,它们将能够持久保存更改。您的客户端和服务将紧密耦合,但在某些情况下它可能已经足够好了。