我正在使用Entity Framework创建我的第一个独立桌面WPF应用程序。我是否需要WCF层来访问数据库?如果我直接从ViewModels调用DBContext,这是一个不好的做法吗?
答案 0 :(得分:4)
简短的回答是:它取决于!
这取决于您需要实施的用例。如果你需要添加另一个抽象层--WCF层 - 来隐藏你的OR / M,你就可以做到。但是,如果您的策略像独立的WPF应用程序一样容易,我就不会打扰制作WCF层。您只需访问应用程序中的IDBContext
,但请记住,不要将视图模型与EF紧密结合。
总是值得尝试将问题分开!
这些担忧是:
通过这种方式,您可以实现轻量级设置,旨在实现更好的分离和更好的测试能力。
稍后在您的开发路径上,当您到达需要的位置时,添加基础架构问题,例如可以作为公共API的WCF层 - 或者作为共享的入口点数据库访问,你可以轻松地将它作为一个新项目添加,将它的类放在接口后面(这些是你将作为参考添加到你的WPF项目中唯一的那些),并让这个项目具有确切的实现。