实体框架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>
谢谢。
对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/。看看它是否对你有帮助。