SQLite с первым кодом EF

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

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

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

EDIT:

Стоит упомянуть, что я получаю эту ошибку во время отладки при применении красных действий через контекст данных 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 таким образом. Хотя сообщение об ошибке, тревожно, предполагает, вероятно, что нет.

Ответ 1

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

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

Код First не требует дополнительных функциональных возможностей поставщика.

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

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

Ответ 2

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

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