【发布时间】:2011-07-06 09:53:28
【问题描述】:
在我的应用程序中,我使用 fluent nhibernate 和 MVC 3。我有单独的业务层、DAL 和存储库层,现在我必须询问在哪里创建数据库连接、DAL 或 MVC 中的天气(用户界面层)
注意:我想在 web.config 文件中定义连接字符串。
有人知道吗?
谢谢
【问题讨论】:
标签: asp.net-mvc nhibernate orm fluent-nhibernate
在我的应用程序中,我使用 fluent nhibernate 和 MVC 3。我有单独的业务层、DAL 和存储库层,现在我必须询问在哪里创建数据库连接、DAL 或 MVC 中的天气(用户界面层)
注意:我想在 web.config 文件中定义连接字符串。
有人知道吗?
谢谢
【问题讨论】:
标签: asp.net-mvc nhibernate orm fluent-nhibernate
我在我的 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 中使用
由于应用程序运行您的代码将是 ASP.NET MVC 项目,Web.config 中的配置设置将在任何类库中可用。因此,您应该能够在任何项目中使用 Rippo 建议的配置代码(但是,如果其他应用程序没有定义具有相同键的连接字符串,则它不能被其他应用程序重用)。
我建议您将 NHIbernate 的配置代码以及其他与 NHIbernate 相关的东西放在 DAL 项目中。
【讨论】: