Как заставить Entity Framework CTP5 работать с SQLite? - PullRequest
5 голосов
/ 04 февраля 2011

Мне очень трудно использовать базу данных SQLite с EF CTP5.Я просто пытался выполнить этот пример MSDN с SQLite.Но в строке

var food = db.Categories.Find("FOOD");

я получаю исключение времени выполнения:

System.Data.SQLite.SQLiteException (0x80004005): SQLite errorno такая таблица: Categories

Примечание. Файл app.config должен быть изменен следующим образом:

App.config

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
  </startup>
  <runtime>
    <generatePublisherEvidence enabled="false" />
  </runtime>
  <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, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
  </system.data>
  <connectionStrings>
    <add name="ProductContext" connectionString="Data Source=D:\CodeFirst.db;Version=3;New=True;" providerName="System.Data.SQLite" />
  </connectionStrings>
</configuration>

Ответы [ 4 ]

4 голосов
/ 13 февраля 2011

Мне кажется, что текущий SQLite.net сначала не поддерживает код CTP5 Entity Framework. Придется подождать, пока это произойдет.

3 голосов
/ 11 февраля 2011

System.Data.SQLite не обеспечивает динамического создания базы данных CreateDatabase () и DeleteDataase () в данный момент. По крайней мере, это сообщение на форуме остается без ответа в течение примерно месяца.
Мы уже предлагаем как динамическое создание баз данных, так и поддержку CTP 5, и планируем опубликовать блог о поддержке CTP 5 в dotConnect для SQLite .
UPDATE . Доступна статья CTP 5 . Он содержит некоторые примечания, касающиеся особенностей создания базы данных, и пример, иллюстрирующий использование CTP 5.

0 голосов
/ 04 января 2013

Добавление

Database.SetInitializer<MyDataContext>(null);

у меня работает.Сначала я использую EF5 код с Sqlite

0 голосов
/ 15 августа 2011
...