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