Замок ActiveRecord "Не удалось скомпилировать документ сопоставления: (строка)" - PullRequest
3 голосов
/ 09 октября 2009

Привет, я получаю исключение при попытке инициализации ActiveRecord, и я не могу понять, что мне не хватает. Я пытаюсь убедить компанию, в которой я работаю, использовать Castle ActiveRecord, и это не будет хорошо выглядеть, если я не смогу продемонстрировать, как это работает. У меня раньше была работа над проектами с Castle ActiveRecord, и я никогда раньше не сталкивался с этой проблемой.

Спасибо за вашу помощь

Исключение, которое я получаю:

Трассировка стека:

в Castle.ActiveRecord.ActiveRecordStarter.AddXmlString (Конфигурация конфигурации, String xml, модель ActiveRecordModel) в Castle.ActiveRecord.ActiveRecordStarter.AddXmlToNHibernateCfg (держатель ISessionFactoryHolder, модели ActiveRecordModelCollection) в Castle.ActiveRecord.ActiveRecordStarter.RegisterTypes (держатель ISessionFactoryHolder, источник IConfigurationSource, типы IEnumerable`1, логическое ignoreProblematicTypes) в Castle.ActiveRecord.ActiveRecordStarter.Initialize (источник IConfigurationSource, типы Type []) в ConsoleApplication1.Program.Main (String [] args) в C: \ Projects \ CastleDemo \ ConsoleApplication1 \ Program.cs: строка 20 в System.AppDomain._nExecuteAssembly (сборка сборки, аргументы String []) в System.AppDomain.ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String [] args) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly () в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта) в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта) в System.Threading.ThreadHelper.ThreadStart ()

Внутреннее исключение:

{"Не удалось скомпилировать документ сопоставления: (строка)"}

Ниже находится мой файл конфигурации:

<add
    key="connection.driver_class"
    value="NHibernate.Driver.SqlClientDriver" />
<add
    key="dialect"
    value="NHibernate.Dialect.MsSql2000Dialect" />
<add
    key="connection.provider"
    value="NHibernate.Connection.DriverConnectionProvider" />
<add
    key="connection.connection_string"
    value="Data Source=SPIROS\SQLX;Initial Catalog=CastleDemo;Integrated Security=SSPI" />
<add
    key="proxyfactory.factory_class"
    value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" />

и это основной метод, запускающий инициализацию:

    static void Main(string[] args)
    {
        //Configure ActiveRecord source
        XmlConfigurationSource source = new XmlConfigurationSource("../../config.xml");
        //

        //Initialazi ActiveRecord
        ActiveRecordStarter.Initialize( source, typeof(Product));
        //

        //Create Schema
        ActiveRecordStarter.CreateSchema();
        //
    }

Ответы [ 2 ]

5 голосов
/ 09 октября 2009

ОК .. все заработало.

В версии NHibernate, которую я имею, требуется иметь «hibernate» в ключевых атрибутах.

Пример

Вместо этого:

<add 
    key="connection.driver_class"
    value="NHibernate.Driver.SqlClientDriver"/>

сделать так:

<add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />

Для более новой версии NHibernate работает наоборот.

0 голосов
/ 29 марта 2010

программа Visual Studio выдает запрос при вводе: значение = "NHibernate.Driver.SqlClientDriber" ....

...