我正在使用实体框架创建第一个独立的桌面WPF应用程序。我是否需要WCF层才能访问数据库?如果我只是直接从ViewModels调用DBContext,这是一个不好的做法吗?
最佳答案
TL;博士
简短的答案是:这取决于!
长答案
这取决于您需要实现的用例。如果您需要添加另一层抽象-WCF层-以隐藏OR / M,则可以执行此操作。但是,如果您的策略像一个独立的WPF应用程序一样容易,那么我就不会打扰创建WCF层。您可以简单地在应用程序中访问IDBContext
,但要记住不要将视图模型与EF紧密耦合。
始终值得尝试将关注点分开!
这些问题是:
数据或持久性(EF)模型,用于将数据库映射到OO模型
支持View的ViewModel带有要显示的数据
持久性和ViewModel的映射
这样,您可以实现轻量级的设置,以实现更好的分离和更好的测试能力。
进一步扩展
在开发路径的后期,当您需要添加基础结构问题(例如WCF层)作为共享API访问的入口点时,可以轻松地将其添加为WCF层,或者将其作为共享数据库访问的入口点。新项目,将其类放在接口后面(这是您添加为WPF项目的唯一参考),并让该项目具有确切的实现。
关于c# - 我的WPF应用程序的后端层中需要WCF层吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38878664/