C# 如何在WPF应用程序中同时支持本地和远程数据库

C# 如何在WPF应用程序中同时支持本地和远程数据库,c#,wpf,wcf,C#,Wpf,Wcf,我想构建一个WPF应用程序,它可以支持本地和远程多个数据源。有一种在两种模式之间切换的配置。我的计划是: 客户端:带有MVVM框架的WPF应用程序 本地数据源:SQL Server 2012和实体框架6 远程数据源:WCF数据服务 本地和远程数据源共享相同的数据模型。我面临的问题是,从本地和远程数据源返回的对象是不同的。例如: 本地:Project.Model.Employee 远程:Project.WCFDataService.ServiceReference.Employee 因此,

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

  • 客户端:带有MVVM框架的WPF应用程序
  • 本地数据源:SQL Server 2012和实体框架6
  • 远程数据源:WCF数据服务
本地和远程数据源共享相同的数据模型。我面临的问题是,从本地和远程数据源返回的对象是不同的。例如:

  • 本地:Project.Model.Employee
  • 远程:Project.WCFDataService.ServiceReference.Employee
因此,我无法将对象绑定到WPF视图。是否有任何简单/安全的方法来转换这些对象?
还有其他建议吗?

您需要做的第一件事是将EF对象映射(转换)为在整个应用程序中使用(以及从WCF服务返回)的标准化数据实体。关于如何使用reflection()以通用方式实现这一点,可能有一百万个示例,但是使用代码直接映射(投影)也是一种选择,并且比反射更快。ORM是一种选择,但要小心,不要因为引入了并不真正需要的组件而使事情过于复杂

在WCF和任何类型的客户端应用程序之间共享数据实体都有很好的文档记录(快速脏搜索:,,)

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