【发布时间】:2016-08-10 16:14:12
【问题描述】:
我正在使用实体框架创建我的第一个独立桌面 WPF 应用程序。我需要 WCF 层来访问数据库吗?如果我只是直接从 ViewModels 调用 DBContext,这是一种不好的做法吗?
【问题讨论】:
我正在使用实体框架创建我的第一个独立桌面 WPF 应用程序。我需要 WCF 层来访问数据库吗?如果我只是直接从 ViewModels 调用 DBContext,这是一种不好的做法吗?
【问题讨论】:
简短的回答是:视情况而定!
这取决于您需要实现的用例。如果您需要添加另一层抽象 - WCF 层 - 来隐藏您的 OR/M,您可以这样做。但是,如果您的策略像独立的 WPF 应用程序一样简单,我不会费心制作 WCF 层。您可以在应用程序中简单地访问 IDBContext,但请记住不要将您的视图模型与 EF 紧密耦合。
始终值得尝试将关注点分开!
这些担忧是:
通过这种方式,您可以实现旨在实现更好的分离和更好的测试能力的轻量级设置。
稍后在您的开发路径中,当您到达需要添加一个基础设施关注点(如 WCF 层)时,该层可以作为公共 API - 或入口点 - 到您的共享数据库访问,您可以轻松地将其添加为新项目,将其类放在接口后面(这些是您唯一可以作为参考添加到 WPF 项目中的类)并让该项目具有确切的实现。
【讨论】: