昨天在园子看文章学习EF4.3,CodeFirst用起来的确很爽,但我基本都是做客户端开发的,不可能见客户就让人装庞大的SQLSERVER,在尝试CodeFirst成功后立马想试试连接SQLite。
尝试了各种方法,开始是无法连接,最后终于连接成功了,EF会自动创建一个我配置里的.db空文件(也就是没有创建表),然后就抱更新条目出错,然后还试着手动在SQLite数据库里增加和实体匹配的字段,仍然报同样的错误,分析发现EF会以namespace.dbcontext为数据库名,而SQLite数据库名不能有".",所以没有创建表,试着指定EF创建数据库名,配置文件里写Catalog=BookContextDB直接被无视,在BookContext构造方法写数据库名,EF又自动去连接.\SQLEXPRESS了
public BookContext() : base("BookContextDB") { }
实在无奈,求各位前辈解答。
我的Config文件
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </configSections> <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, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> </DbProviderFactories> </system.data> <connectionStrings> <add name="BookContext" connectionString="Data Source=d:\ddd.db;Version=3;New=True;" providerName="System.Data.SQLite" /> </connectionStrings> </configuration>
完成项目下载地址:http://good.gd/2159320.htm
微软肯定是还没有支持SQLLite的,不知道有没有第三方开发的,我只知道目前有第三方开发的MySql支持插件,如果没有就不是通过配置可以的。
好的 感谢前辈的指点
http://www.codeproject.com/Articles/236918/Using-SQLite-embedded-database-with-entity-framewo
感谢您的回复,不过我想要的是CodeFirst不是DatabaseFirst.