zoukankan      html  css  js  c++  java
  • 在项目中使用SQLite数据库小结

    ------------------------------------------------------------------------
    推荐:
    - VS2012 使用 1.0.84 版的库
    - VS2013 使用 1.0.93 版的库
    ------------------------------------------------------------------------
    1、安装运行库
    sqlite-netFx45-setup-bundle-x64-2012-1.0.84.0.exe
    sqlite-netFx45-setup-bundle-x86-2012-1.0.84.0.exe(最新的测试,64位系统,只要装这个就行了)
    选安装到GAC,集成到VS2012(或VS2013)

    2、创建各项目,VS2012项目的.NET版本选4.5,VS2013项目的.NET版本选4.5.1

    3、安装nuget

    1 install-package EntityFramework -version 5.0
    2 install-package System.Data.SQLite -version 1.0.84

    (最新的测试,64位系统,这步也不需要)

    4、修改app.config/web.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.84.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
    </system.data>

    5、正常添加edmx即可在项目中操作SQLite数据库。

    ========================================
    最新的测试,上面很多步骤都不需要:
    ========================================
    1、只要安装x86的运行库即可(VS2012用1.0.84.0,VS2013用1.0.93.0)
    2、创建一个ClassLibrary的models项目库
    3、在项目库中即可添加edmx(T4或默认模板都没问题)
    4、mvc3/4项目和console项目,直接引用models项目库
    5、mvc项目修改web.config,console项目修改app.config,添加连接字符串
    6、mvc项目修改viewsweb.config添加对models项目库的namespace引用
    7、然后就可以在项目中正常访问sqlite数据库了
      注意:T4模板(生成独立的POCO类)的edmx可以直接使用,默认模板(所有类全生成在designer.cs中)的edmx在引用的项目中需要修改web.config:

    <compilation debug="true" targetFramework="4.0"> <!-- 这里也可能是4.5,VS2013是4.5.1,根据项目需要 -->
    <assemblies>
    <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    </assemblies>
    </compilation>

    ==============================================

    附注:SQLite 查询出错 IndexOutOfRange,是缺少字段,或者字段名错误。

    p.s. 写了个小测试项目,放在东京代码库里了。

  • 相关阅读:
    真爱 vs. 种姓:新一代印度人的婚恋观
    美国司法部解禁guns打印技术
    特朗普访英,吃瓜群众却只想看《真爱至上》
    Semaphore(信号量)
    RLock(递归锁)
    用python编写九九乘法表
    php传值和传引用的区别
    post请求的header
    Content-type详解
    thinkphp5 学习笔记
  • 原文地址:https://www.cnblogs.com/rangeon/p/3904537.html
Copyright © 2011-2022 走看看