Настройка ASP.NET MVC 2 с помощью Spring.NET и FluentNHibernate - PullRequest
1 голос
/ 12 января 2010

Я пытаюсь настроить 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) сообщение в блоге и глава ORM документации Spring .NET (http://www.springframework.net/doc-latest/reference/html/orm.html)

Как и в блоге Бенни, я создал «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 Ответ

2 голосов
/ 12 января 2010

Хотя я не работал с 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

Также посмотрите в комментариях к посту Бенни, там обновленный пример кода.

...