流畅的 nHibernate 数据库连接
Posted
技术标签:
【中文标题】流畅的 nHibernate 数据库连接【英文标题】:Fluent nHibernate Database Connection 【发布时间】:2011-07-06 09:53:28 【问题描述】:在我的应用程序中,我使用 fluent nhibernate 和 MVC 3。我有单独的业务层、DAL 和存储库层,现在我必须询问在哪里创建数据库连接、DAL 或 MVC 中的天气(用户界面层)
注意:我想在 web.config 文件中定义连接字符串。
有人知道吗?
谢谢
【问题讨论】:
【参考方案1】:我在我的 MVC 项目中做了这样的事情:-
<connectionStrings>
<add name="db"
connectionString="Server=.;Database=NHCookbook;Trusted_Connection=SSPI;"/>
</connectionStrings>
然后在 mvc 项目中,我构建了我的会话工厂,例如:-
var nhConfig = Fluently
.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.FromConnectionStringWithKey("db"))
)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<AMODELCLASS>()
)
.BuildConfiguration();
sessionFactory = nhConfig.BuildSessionFactory();
【讨论】:
是的,然后我个人使用IOC
将会话工厂传递给我的存储库/DAO 层。但正如 Tomas 指出的那样,这是可选的,实际上可以在 DAL 中使用
我收到此错误“创建 SessionFactory 时使用了无效或不完整的配置。”
您使用的是哪个版本的 NHibernate?
我使用 3.1 版本的 nHibernate
此代码是从我使用 3.1 的演示项目中提取的,其他原因导致错误。代码正确【参考方案2】:
由于应用程序运行您的代码将是 ASP.NET MVC 项目,Web.config 中的配置设置将在任何类库中可用。因此,您应该能够在任何项目中使用 Rippo 建议的配置代码(但是,如果其他应用程序没有定义具有相同键的连接字符串,则它不能被其他应用程序重用)。
我建议您将 NHIbernate 的配置代码以及其他与 NHIbernate 相关的东西放在 DAL 项目中。
【讨论】:
是的,我正在按照您的建议进行操作。谢谢 Rippo 在他的帖子中提到的代码给出了异常“创建 SessionFactory 时使用了无效或不完整的配置。”知道这个异常是什么吗?以上是关于流畅的 nHibernate 数据库连接的主要内容,如果未能解决你的问题,请参考以下文章