首页 新闻 会员 周边 捐助

EF4.3 CodeFirst 如何设置连接SQLite

0
[已解决问题] 解决于 2012-08-03 19:06

昨天在园子看文章学习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

wwk1986的主页 wwk1986 | 初学一级 | 园豆:26
提问于:2012-07-30 09:53
< >
分享
最佳答案
0

微软肯定是还没有支持SQLLite的,不知道有没有第三方开发的,我只知道目前有第三方开发的MySql支持插件,如果没有就不是通过配置可以的。

奖励园豆:5
技术改变世界 | 菜鸟二级 |园豆:207 | 2012-08-02 19:52

好的 感谢前辈的指点

wwk1986 | 园豆:26 (初学一级) | 2012-08-03 19:05
其他回答(1)
0

http://www.codeproject.com/Articles/236918/Using-SQLite-embedded-database-with-entity-framewo

Johnny Yan | 园豆:256 (菜鸟二级) | 2012-07-30 17:26

感谢您的回复,不过我想要的是CodeFirst不是DatabaseFirst.

支持(0) 反对(0) wwk1986 | 园豆:26 (初学一级) | 2012-07-30 23:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册