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