【问题标题】:Fluent nHibernate Database Connection流畅的 nHibernate 数据库连接
【发布时间】:2011-07-06 09:53:28
【问题描述】:

在我的应用程序中,我使用 fluent nhibernate 和 MVC 3。我有单独的业务层、DAL 和存储库层,现在我必须询问在哪里创建数据库连接、DAL 或 MVC 中的天气(用户界面层)

注意:我想在 web.config 文件中定义连接字符串。

有人知道吗?

谢谢

【问题讨论】:

    标签: asp.net-mvc nhibernate orm fluent-nhibernate


    【解决方案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 时使用了无效或不完整的配置。”知道这个异常是什么吗?
    猜你喜欢
    • 2011-12-16
    • 2017-10-19
    • 1970-01-01
    • 2014-09-17
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多