我想让用户选择从UI中的多个数据库(如SqlServer,Oracle等)列表中选择数据库。根据用户的选择,我想连接到选定的数据库。我可以通过创建接口并通过每个数据库的单独类实现该接口来实现。这种方法在这里解释了 http://thetechstory.com/2012/09/29/connecting-multiple-databases-in-net-using-c-part-1-introduction/
我也听说过使用NHibernate也可以。我对NHibernate了解不多。我一直在搜索web.But我无法弄清楚哪种方式是实现此方案的更好方法。我应该选择NHibernate还是编写单独的数据库实现代码?
答案 0 :(得分:2)
这取决于你想做什么。
如果您想“编码”所有内容,可以进行“手动”实施。但它暗示如果有一天你想要定位另一个数据库提供者,你将不得不创建适当的接口。
如果您想使用处理此方面的“开箱即用”产品,您可以选择NHibernate或其他类似产品(CodeFluent Entities)。
无论如何,没有正确或错误的答案,一切都取决于你想做什么。
答案 1 :(得分:0)
NHibernate将需要更改cofig才能连接到数据库。您可以在运行时执行此操作(不确定)。
更好的方法是为每种类型的数据库创建适配器。请参阅适配器模式和用户策略模式,以从数据库列表中选择一个。
<强> [更新] 强>
NHibernate只是一个ORM,它会将您的表数据转换为对象。您可以同时使用这两种方法。
为每个数据库和每个适配器模式使用适配器模式使用NHibernate将对象映射到数据库,反之亦然。