如何让Entity Framework CTP5与SQLite配合使用?

5
我在使用EF CTP5与SQLite db时遇到了很大的困难。我只是想执行这个MSDN例子,但在这一行卡住了。
var food = db.Categories.Find("FOOD");

我遇到了一个运行时异常:

System.Data.SQLite.SQLiteException (0x80004005): SQLite错误,没有找到表: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>

也许在 System.Data.SQLite 网站的 EF 论坛上问会更好?http://sqlite.phxsoftware.com/forums/29.aspx - Gabriel Magana
4个回答

4

在我看来,目前的SQLite.net似乎不支持Entity Framework CTP5的Code First。我们必须等待这种支持的出现。


3

目前,System.Data.SQLite不提供CreateDatabase()和DeleteDataase()动态数据库创建功能。至少,这个论坛帖子已经一个月没有回复了。
我们已经提供了动态数据库创建和CTP 5支持,并计划很快在dotConnect for SQLite博客中介绍CTP 5的支持情况。
更新。这篇 CTP 5文章已经发布,其中包含了一些关于数据库创建的特殊说明和一个演示CTP 5用法的示例。


Devart - 热切期待博客文章。我找不到任何关于使用Code First CTP5的dotConnect for SQLite的信息。没有!我甚至在Devart论坛上发布了帖子并从Devart网站发送了电子邮件。 - user327325
@user327325,我们已经发布了这篇文章。请查看答案的更新。 - Devart

0

添加

Database.SetInitializer<MyDataContext>(null);

对我来说有效。我使用EF5的Code First和Sqlite


0

虽然这理论上回答了问题,但最好在此处包含答案的基本部分,并提供参考链接。 - Jack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接