NHibernate и SQLite горе - PullRequest
       0

NHibernate и SQLite горе

0 голосов
/ 04 июля 2010

У меня проблемы с получением nhibernate, чтобы хорошо играть с sqlite:

Моя конфигурация NHibernate:

<NHibernate>
  <hibernate xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="connection.driver_class">NHibernate.Driver.SQLite20Driver</property>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="connection.connection_string">Data Source=test.db;New=True;</property>
      <property name="show_sql">false</property>
      <property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
      <property name="use_outer_join">true</property>
      <property name="show_sql">false</property>
      <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
      <mapping assembly="SimpleGallery" />
    </session-factory>
  </hibernate>
</NHibernate>

Я использую 64-разрядную версию Windows 7. Я попытался скопировать как x86, так и 64-битную версию system.data.sqlite.dll в выходной каталог, а также сослаться на них и настроить их на локальное копирование, но безрезультатно. Решение VS было настроено для компиляции на любой / x86 / 64bit, но я все еще получаю исключение:

"{" Не удалось найти реализацию IDbCommand и IDbConnection в сборке System.Data.SQLite. Убедитесь, что сборка System.Data.SQLite находится в каталоге приложения или в глобальном кэше сборок. Если сборка находится в GAC, используйте элемент в файле конфигурации приложения, чтобы указать полное имя сборки. "}"

Чего мне не хватает?

1 Ответ

2 голосов
/ 06 июля 2010

Я ударил этот в апреле и, наконец, заработал - какая PITA!Попробуйте изменить конфигурацию так, чтобы она поддерживала смешанную загрузку и добавила перенаправление во время выполнения, как показано ниже.

Я бы хотел, хотя был бы выпуск SQLite, который исправит это, но я не думаю.Пожалуйста, дайте мне знать, если вы узнаете иначе.

Ура,
Беррил

<!-- SQLite requires this mixed mode load setting-->
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  <requiredRuntime version="v4.0.20506"/>
</startup>

  <runtime>
   ....

  <!-- SQLite is built with older System.Data so we need this redirect -->
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Data" publicKeyToken="b77a5c561934e089"/>
      <bindingRedirect oldVersion="2.0.0.0" newVersion="4.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>

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