SQLite с EF Code First - PullRequest
       29

SQLite с EF Code First

10 голосов
/ 13 декабря 2010

После моего успеха с использованием SQLite с NHibernate, я очень рад использовать его для тестирования с помощью Entity Framework Code First.

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

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

РЕДАКТИРОВАТЬ:

Стоит отметить, что я получаю эту ошибку во время отладки при применении грубых действий через EF"контекст данных":

Невозможно определить имя поставщика для подключения типа 'System.Data.SQLite.SQLiteConnection'.

<system.data>
    <DbProviderFactories>
        <remove invariant="System.Data.SQLite"/>
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
   type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
</system.data>


<connectionStrings>
    <add name="DataContext"
         connectionString="Data Source=:memory:;Version=3;New=True;"
         providerName="System.Data.SQLite"
     />
</connectionStrings>

Надеемся, что EF интегрируется с SQLite таким образом.Хотя сообщение об ошибке вызывает тревогу, вероятно, нет.

Ответы [ 2 ]

6 голосов
/ 26 марта 2011

Вам необходимо использовать квалифицированное имя сборки:

<add name="SQLite Data Provider" 
     invariant="System.Data.SQLite" 
     description=".Net Framework Data Provider for SQLite" 
     type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
5 голосов
/ 29 декабря 2010

Code First должен прекрасно работать с любым провайдером уровня ADO.NET 3.5 (они реализуют функциональность Entity Framework).

Поставщики с поддержкой 4.0 также добавляют функциональность DeleteDatabase / CreateDatabase / DatabaseExists.

Code First не требует никаких дополнительных функций провайдера, кроме этих.

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

Стоит проверить, чтобы в вашем GAC был установлен современный поставщик SQLLite, поддерживающий функциональность уровня 3.5.

...