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