Entity Framework 4 不支持 SQLite。

3

我正在使用Entity Framework 4的Code First方法自动创建SQLite数据库,但是遇到了一个错误,提示我出现了ProviderIncompatibleException:

[System.Data.ProviderIncompatibleException] = {"CreateDatabase is not supported by the provider."}

我认为EF 4支持它吗?

我在app.config中使用了这个:

<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.81.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
  </system.data>

谢谢你。

3
你看过这个帖子了吗?它似乎回答了你的问题。 https://dev59.com/KV7Va4cB1Zd3GeqPIUpk#8522174 - Shiva
3个回答

3

支持 Code-First(您提到的 CreateDatabase() 方法)和 Code-First Migrations(一种更新的 Code-First 开发方法)均在特定的 EF-provider 级别实现。在 System.Data.SQLite 中,所有这些功能都未在提供程序中实现。如果需要这些功能,则应使用其他 EF-providers。例如,Devart dotConnect for SQLite 支持 Code-FirstCode-First Migrations

Devart 团队


1
@KevFixx 免费的 dotConnect for SQLite 标准版完全不支持 EF。专业版支持 EF,包括 Code First 和 Migrations。 - bricelam

1

这通常是由于SQLite数据提供程序构建在.NET 2上,而您实际使用的是.NET 4之间的兼容性问题引起的。

请查看此链接,它应该会给你答案: system.data.sqlite .net 4

请注意,您必须将其应用于您的app.config或web.config中,其中包含您的模型,但也要应用于您的入口项目(例如.exe或asp.net项目)。


0

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