使用nHibernate从不同的应用程序查询数据库

时间:2010-12-27 16:05:36

标签: nhibernate architecture

在这一刻,我有两个Web应用程序(一个应用程序是用于管理项目的MVC2应用程序,第二个是带有Web服务的应用程序)。两个应用程序都必须处理数据库并使用Nhibernate来查询数据库。这是一个好的模式吗?如果不是我能做什么?

修改1

两个应用程序都可以写入数据库。我有一个处理数据库事务的DLL项目,并且有一个名为“Repositorio”的de nhibernate实例。尽管如此,每个应用程序都有一个不同的Repositorio.dll实例,因此会对数据库造成多重威胁,我需要做些什么才能使两个应用程序使用相同的Repositorio.dll实例?

2 个答案:

答案 0 :(得分:1)

答案取决于两个应用程序是否都可以写入数据库。

如果一个是只读的,我会说你很安全。

我不是,我认为面向服务的方法会建议创建一个为两个应用程序提供接口的服务,并且是该数据库的唯一所有者。

“面向服务”并不意味着服务必须是分布式组件(例如,SOAP或REST或RPC)。如果将数据库访问封装在具有定义良好的接口的组件中,则可以选择在两个应用程序中将该组件共享为DLL。只有当它对两个应用程序都有意义时才使它成为分布式组件。

答案 1 :(得分:0)

即使两个应用程序都写入数据库,对我来说听起来也不错。我建议您创建第三个项目作为类库,其中包含所有与nHibernate相关的内容,以避免在两个项目中编写任何冗余代码。