Проблема с NHibernate - PullRequest
       3

Проблема с NHibernate

2 голосов
/ 15 сентября 2010

Я использую sql server 2005

, но у меня сообщение об ошибке _sessionFactory = configuration.BuildSessionFactory ();

Что не так и как я могу это исправить?


Мой Hibernate.cfg.xml

 <property name="connection.driver_class">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
<!--<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>-->
<property name="connection.connection_string">Server=localhost\SQLServer2005;database=NHibernate101;Integrated Security=True;</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<mapping assembly="Infrastructure"></mapping>

и my in my web.config

    <connectionStrings>
    <add name="ApplicationServices" connectionString="Server=localhost\SQLServer2005;database=NHibernate101;" providerName="NHibernate.Connection.DriverConnectionProvider"/>
</connectionStrings>

Сообщение об ошибке:

NHibernate.HibernateException не было обработано кодом пользователя. Message = Не удалось создать драйвер из NHibernate.Connection.DriverConnectionProvider.Source = NHibernate StackTrace: в NHibernate.Connection.ConnectionProvider.ConfigureDriver (параметры IDictionary 2 settings) at NHibernate.Connection.ConnectionProvider.Configure(IDictionary 2) в NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider (свойства IDictionary 2 settings) at NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary 2) в NHibernate.Cfg.Configurations.uildShilling для NHibernate.Cfg.Configuration.Cfg.Configuration.BuildSessionFactory () в Core.Domain.Repositories.NHibernateHelper.get_SessionFactory () в C: \ Documents and Settings \ nHibernate101 \ NHibernate101 Final \ NHibernate101 \ Core \ Domain \ Repositories \ NHibernateHelper.cs: строка 22 в Core.Do.Repositories.NHibernateHelper.OpenSession () в C: \ Documents and Settings \ nHibernate101 \ NHibernate101 Final \ NHibernate101 \ Core \ Domain \ Repositories \ NHibernateHelper.cs: строка 30 в Core.Domain.Repositories.PostRepository.Core.IRepository.GetAll () в C: \ Documents and Settings \ nHibernate101 \ NHibernate101 Final \ NHibernate101 \ Core \ Domain \ Repositories \ PostRepository.cs: строка 59 в NHibernate101.Controllers.PostsController.Index () в C: \ Documents and Settings \ nHibernate101 \ NHibernate101 Final \ NHibernate101 \ NHibernate101 \ Controllers \ PostsController.cs: строка 22 в lambda_method (Closure, ControllerBase, Object []) в System.Web.Mvc.ActionMethodDispatcher.Execute (контроллер ControllerBase, параметры Object []) в системе.Web.Mvc.ReflectedActionDescriptor.Execute (ControllerContext controllerContext, IDictionary 2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2 параметры) в System.Web.Mvc.ControllerActionInvoker. <> C__DisplayClassd.b__a () в System.Web.Mvc.ControllerActionInvinterMilateExctionInctionFilter для объекта ActionIntectionIntectionInctionFilterНастройки Func 1 continuation) InnerException: System.InvalidCastException Message=Unable to cast object of type 'NHibernate.Connection.DriverConnectionProvider' to type 'NHibernate.Driver.IDriver'. Source=NHibernate StackTrace: at NHibernate.Connection.ConnectionProvider.ConfigureDriver(IDictionary 2) InnerException:

Ответы [ 3 ]

1 голос
/ 15 сентября 2010

Вы получаете эту ошибку, потому что в вашем Hibernate.cfg.xml вы говорите NHibernate использовать класс NHibernate.Connection.DriverConnectionProvider для свойства connection.driver_class.Свойство connection.driver_class ожидает интерфейс IDriver, а NHibernate.Connection.DriverConnectionProvider - нет.

1 голос
/ 15 сентября 2010

Ваша конфигурация неверна.Используйте это:

<property name="hibernate.connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
<property name="hibernate.connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property> 
<property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property> 
<property name="connection.connection_string">Server=localhost\SQLServer2005;database=NHibernate101;Integrated Security=True;</property> 
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property> 
<mapping assembly="Infrastructure"></mapping> 
0 голосов
/ 15 сентября 2010

Может быть, вы указали диалект SQL2000, а не 2005? У меня никогда не было такого, поэтому я не уверен, что это вызовет эту ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...