【问题标题】:How to support both local and remote database in a WPF application如何在 WPF 应用程序中同时支持本地和远程数据库
【发布时间】:2015-01-04 12:21:35
【问题描述】:

我想构建一个可以支持本地和远程多个数据源的 WPF 应用程序。有一种配置可以在两种模式之间切换。我的计划是:

  • 客户端:带有 MVVM 框架的 WPF 应用程序。
  • 本地数据源:SQL Server 2012 和 Entity Framework 6。
  • 远程数据源:WCF 数据服务。

本地和远程数据源共享相同的数据模型。我面临的问题是从本地和远程数据源返回的对象是不同的。例如:

  • 本地:Project.Model.Employee
  • 远程:Project.WCFDataService.ServiceReference.Employee

因此,我无法将对象绑定到 WPF 视图。有没有简单/安全的方法来转换这些对象? 还有其他建议吗?

【问题讨论】:

    标签: c# wpf wcf


    【解决方案1】:

    您需要做的第一件事是将 EF 对象映射(转换)为您在整个应用程序中使用的标准化数据实体(以及从 WCF 服务返回)。可能有一百万个示例说明如何使用反射 (here is one) 以通用方式执行此操作,但使用代码的直接映射(投影)也是一种选择,并且比反射更快。 ORM 是一种选择,但请注意不要通过引入您并不真正需要的组件而使事情变得过于复杂。

    在 WCF 和任何类型的客户端应用程序之间共享数据实体都有据可查(快速而肮脏的搜索:1234)。

    对于两个数据源的查询,使用SOA approach。视图模型调用一个“服务”方法来获取它的数据,服务负责调用本地数据存储库和远程 WCF 服务,然后组合结果。

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 2023-03-09
      • 2019-02-08
      • 1970-01-01
      • 2014-08-26
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      相关资源
      最近更新 更多