部分连接多个数据存储- c# /WPF解决方案

本文关键字:WPF 解决方案 存储 数据 连接 | 更新日期: 2023-09-27 18:13:29

我正在构建一个WPF, c#, . net解决方案,需要快速更改数据连接。所有的连接最终将同步回父Oracle数据库,但在此期间,我可能会从访问数据库,或本地sql server紧凑数据库,或xml文件,甚至是web服务或sharepoint提取数据。问题是,我甚至可能需要添加提供程序,并且需要能够保持提供程序彼此同步,并且实时执行,而不会丢失与用户的连接/无缝连接。这完全取决于我们使用的是什么类型的机器,哪个域,以及我们拥有什么样的网络连接,这是客户端的要求,我无法更改。

谁有一个好的建议,最好的方法来完成这将是什么?

部分连接多个数据存储- c# /WPF解决方案

客户解释了他们为什么需要这个功能吗?他们经常提出要求来解决他们预见到的问题,而不知道如何最好地解决它。

如果你正在编写一个类似旅行推销员使用的应用程序,它将间歇性地连接到Oracle数据库,那么也许你应该考虑使用一些方法,而不是直接连接数据库来同步数据库。

假设使用WCF/SOAP服务来回传递序列化的数据对象,或者您可以考虑使用MSMQ在间歇性连接的移动应用程序和Oracle数据库服务器之间来回传输更改。当然,这意味着你需要运行一个服务器端应用程序/服务来处理这些数据,并将其传递到Oracle数据库,但它可以更容易地处理间歇连接,而不必处理数据库连接错误逻辑。

在此期间,如果您的客户端代码应该考虑分层代码以使用工厂存储库类型模式。由于业务逻辑只调用接口,因此可以在运行时(例如通过配置设置)决定的数据层中使用特定于数据库的代码。

您可以在任何服务器上创建一个或两个表,其中将包含所有连接字符串以及需要使用哪个连接的数据的条件。

和您的业务层将独立于连接。

其他选项是使用软件工厂模式。在那里,您可以独立于存储库连接,并在运行时决定哪个数据存储库将连接到哪个数据库。