1

我正在尝试配置 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”一样,该类的内容与博客文章中的内容相同。

我的 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 方言和 DB 提供程序)。

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

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

非常感谢!

4

1 回答 1

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 文档的相关链接

另请查看 Benny 博客文章的评论,有一个更新的代码示例。

于 2010-01-12T18:43:07.207 回答