实体框架4不支持SQLite

本文关键字:SQLite 不支持 框架 实体 | 更新日期: 2025-02-18 02:32:23

我正在使用实体框架4代码优先的方法自动创建SQLite数据库,我收到一个错误,告诉我ProviderCompatibleException:

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

我认为英孚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>

谢谢。

实体框架4不支持SQLite

对Code First(您提到的CreateDatabase()方法)和Code First Migrations(一种新的Code First开发方法)的支持都是在某个EF提供程序级别实现的。在System.Data.SQLite的情况下,所有这些功能都不会在提供程序中实现。如果您需要,您应该使用其他EF提供商。例如,Devart dotConnect For SQLite同时支持代码优先和代码优先迁移。

Devart团队

这通常是由.NET 2和您实际使用的.NET 4之间的兼容性问题引起的。

看看这个链接,它应该会给你答案:system.data.sqlite.net 4

请注意,您必须在模型所在的app.config或web.config中应用它,也必须在入口点项目(例如.exe或asp.net项目)中应用它。

@Kev Fixx:如果您使用的是来自https://system.data.sqlite.org/‎,那么它不支持迁移(例如创建数据库)。你可以使用商业版(比如Devart),也可以自己编写迁移。本文使用Android的概念来制定一个简单的迁移策略http://hintdesk.com/sqlite-with-entity-framework-code-first-and-migration/。看看它是否对你有帮助。