我正在尝试配置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。
如果您能指出我的配置文件中应该更改的内容,我会非常感激。
非常感谢你!
答案 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博客文章的评论,这是一个更新的代码示例。