【发布时间】:2012-09-25 19:34:44
【问题描述】:
我是 NHibernate 的新手,如果这是一个简单的问题,我深表歉意。基本上,我有一个包含对其他数据库的访问的数据库。这是我的基础数据库的布局。这是一个包含其他数据库的数据库信息的表
--Databases--
Id
DatabaseName
DatabaseType
ConnectionString
如您所见,此表包含所有维护的数据库。现在这是一个表,其中包含链接到数据库的所有列。
--Tables--
Id
Name
ColumnNames
DatabaseId
我有许多不同类型的数据库,包括(Oracle、mysql、mssql 或 postgresql)。它们在我的应用程序中都扮演着不同的角色。为每个数据库中的每个表创建映射 xml 文件将非常耗时。
我想传递 nhibernate 连接字符串并对表执行一个简单的查询。这是一个查询示例。
select * from table90182763 where id IS not NULL and id <> 0
我可以将这个 SQL 查询直接传递给 NHibernate 吗? 我可以在每个请求上有效地将连接字符串传递给休眠吗?
【问题讨论】:
-
为什么需要对象关系映射器?我看不出它对您有多大用处,因为您的设置过于复杂。在你的情况下,在我看来它只会给你带来更多的痛苦而不是帮助你。如果您只想让抽象层抽象出不同的 DBMS,那么是的,您可以使用它。但是,解决方案不会比您实现自己的抽象更简单。您必须为您连接到的每个数据库配置一个新的 SessionFactory(您可以为此使用 FluentNHibernate,因此您可以动态配置 SessionFactories)。
标签: c# nhibernate