2012-08-29 149 views
3

我使用实体框架4码第一种方法来自动创建SQLite数据库,我得到一个错误,告诉我ProviderIncompatibleException:实体框架4不支持的SQLite

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

我thaught 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

你看看这个线程似乎回答你的问题? http://stackoverflow.com/a/8522174/325521 – Shiva

回答

1

它通常是由.NET 2 agaisnt之间的兼容性问题引起的,SQLite数据提供程序的构建和.NET 4实际使用的是.NET 4。

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

请注意,你有你的app.config或web.config中,其中模型位于而且在你的入口点,以应用此项目(例如您的.exe或asp.net项目)。

3

支持Code-First(您提到的CreateDatabase()方法)和Code-First Migrations(一种更新的Code-First开发方法)是在某个EF提供程序级别实现的。在System.Data.SQLite的情况下,所有这些功能都没有在提供者中实现。如果您需要它,您应该使用其他EF提供商。例如,用于SQLite的Devart dotConnect支持Code-FirstCode-First Migrations

Devart团队

+0

因此,Devart社区不支持代码第一权利?> – Alvin

+1

@KevFixx dotConnect for SQLite的免费标准版本根本不支持EF。专业版支持包括Code First和Migrations的EF。 – bricelam