使用Spring.NET和FluentNHibernate配置ASP.NET MVC 2

时间:2010-01-12 15:17:50

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

我正在尝试配置ASP.NET MVC 2 RC和Spring .NET 1.3以使用FluentNHibernate。

我设法在控制台应用程序中运行FluentNHibernate。

目前ASP.NET MVC 2 RC和Spring .NET对我来说运行正常,但我在配置FluentHibernate时遇到了问题。

在提出这个问题之前,我已经搜索了很多,我也查看了StackOverflow上的相关问题。

我知道有这篇(http://www.bennymichielsen.be/post/2009/01/04/Using-Fluent-NHibernate-in-SpringNet.aspx)博客文章和Spring .NET文档ORM章节(http://www.springframework.net/doc-latest/reference/html/orm.html

就像Benny的博客建议我创建了“FluentNHibernateLocalSessionFactoryObject”一样,这个类的内容与博客文章相同。

My Spring配置文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:db="http://www.springframework.net/database"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd">


  <object id="MySessionFactory" type="Project.Core.NHinbernate.FluentNHibernateLocalSessionFactoryObject, Spring.Data.NHibernate20">
    <property name="DbProvider" ref="DbProvider"/>
    <property name="FluentNHibernateMappingAssemblies">
      <list>
        <value>Project.Core.NHibernate</value>
      </list>
    </property>
    <property name="HibernateProperties">
      <dictionary>
        <entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
        <entry key="hibernate.dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
        <entry key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
      </dictionary>
    </property>
  </object>

  <object id="HomeController" singleton="false" type="Project.UI.Controllers.HomeController">
    <property name="MySessionFactory" value="MySessionFactory" />
  </object>
</objects>

我认为这种配置有很多缺失(连接字符串,正确的SQL Server 2008方言和数据库提供程序)。

我的目标是简单地将SessionFactory注入HomeController。

如果您能指出我的配置文件中应该更改的内容,我会非常感激。

非常感谢你!

1 个答案:

答案 0 :(得分:2)

虽然我没有使用ASP.NET MVC,但您确实需要在配置文件中添加DbProvider。 DbProvider将保存连接字符串。所以将它添加到配置文件中。

  <db:provider id="DbProvider" 
  provider="System.Data.SqlClient" 
  connectionString="Data Source=(local);Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/>

为了使用db:provider语法,您还需要将其添加到应用程序配置文件(web / app.config)

<configuration>
    <configSections>
       <sectionGroup name="spring">
           <section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core" />
       </sectionGroup>
    </configSections>
<spring>
    <parsers>
       <parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />
    </parsers>
</spring>
</configuration>

这是Spring.NET文档的relevant link

另请参阅Benny博客文章的评论,这是一个更新的代码示例。