使用C#在.NET中连接多个数据库

本文关键字:数据库 连接 NET 使用 | 更新日期: 2023-09-27 18:28:20

我想让用户从UI中的多个数据库(如SqlServer、Oracle等)列表中选择数据库。根据用户的选择,我希望连接到选定的数据库。我可以通过为每个数据库创建接口并通过单独的类实现该接口来实现这一点。此方法在此处进行了解释
http://thetechstory.com/2012/09/29/connecting-multiple-databases-in-net-using-c-part-1-introduction/

我也听说,这是可能的使用NHibernate也。我对NHibernate了解不多。我一直在网上搜索。但我不知道哪种方式是实现这种场景的更好方式。我应该选择NHibernate还是应该为单独的数据库实现编写代码?

使用C#在.NET中连接多个数据库

这取决于你想做什么。

如果您想对所有内容进行"编码",可以采用"手动"实现。但这意味着,如果有一天你想以另一个数据库提供者为目标,你必须创建合适的接口。

如果你想使用一个"开箱即用"的产品来处理这个方面,你可以选择NHibernate或其他类似的(CodeFluent Entities)。

不管怎样,没有对错的答案,这取决于你想做什么

NHibernate将需要更改cofig以连接到数据库。您可能可以在运行时执行此操作(对此不确定)。

更好的方法是为每种类型的数据库创建适配器。请参阅适配器模式和用户策略模式,从数据库列表中选择一个。

[更新]
NHibernate只是一个ORM,它将把您的表数据转换为对象。您可以同时使用这两种方法。

对每个数据库使用适配器模式,在每个适配器模式中使用NHibernate将对象映射到数据库,反之亦然。