我想构建一个可以支持多个本地和远程数据源的WPF应用程序。有一种配置可在两种模式之间切换。我的计划是:
本地和远程数据源共享相同的数据模型。我面临的问题是从本地和远程数据源返回的对象是不同的。例如:
因此,我无法将对象绑定到WPF视图。有没有简单/安全的方法来转换这些对象? 还有其他建议吗?
答案 0 :(得分:1)
您需要做的第一件事是将EF对象映射(转换)为您在整个应用程序中使用的标准化数据实体(以及从WCF服务返回)。可能有一百万个如何使用反射(here is one)以通用方式执行此操作的示例,但使用代码进行直接映射(投影)也是一种选择,并且比反射更快。 ORM是一种选择,但要注意不要通过引入你真正需要的组件来使事情变得复杂。
在WCF和任何类型的客户端应用程序之间共享数据实体都有详细记录(快速和脏搜索:1,2,3,4)。
至于查询两个数据源,请使用SOA approach。视图模型调用"服务"获取其数据的方法,该服务负责调用本地数据存储库和远程WCF服务,然后组合结果。