2010-01-12 4 views
1

Я пытаюсь настроить ASP.NET MVC 2 RC и Spring .NET 1.3 для использования FluentNHibernate.Настройка ASP.NET MVC 2 с Spring.NET и 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)

Так же, как блог Бенни предлагает я создал «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.

Я был бы очень признателен, если вы указали, что должно быть изменено в моем файле конфигурации.

Большое спасибо!

ответ

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"/> 

Для того, чтобы использовать БД: синтаксис провайдера вам также нужно добавить это в файл конфигурации приложения (веб/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> 

Вот relevant link в Spring.NET-х документация

Также обратите внимание на комментарии блога Benny, есть обновленный образец кода.

+0

Но документ Spring .NET. «Эти реализации поставщика не учитывают использование с NHibernate. NHibernate предоставляет SessionFactory, где управление кэшем второго уровня, каждому соединению». –

+0

Я не понимаю ваш вопрос, не могли бы вы дать мне ссылку на это заявление? – BennyM

Смежные вопросы