ef to sqlite 实际开发问题终极解决方法

  1. 版本问题
  2. vs安装问题
  3. x64/x86 发布问题

    针对开发中遇到的问题,通过一下方法解决:

1.sqlite下载地址http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki,我的开发环境是 win8.1 x64 vs2010 ,下载sqlite-netFx40-static-binary-bundle-Win32-2010-1.0.93.0.zip,不要下载1.0.66.0版本的。不管新旧版本在开发中都会有问题。发布时也有问题。这些问题会在下面解决。
2.最好是用vs2010,vs2012在开发中遇到了很多的问题,短时间内无法解决。安装后,直接使用dbfirst新建edmx文件。但是你的数据库中如果有nvarchar2的字段,在影射属性的时候,会出现无法识别的异常。

3.解决此问题的方法就是,先把数据库字段类型改成varchar,生成edmx文件后,再改成nvarchar2类型。我是通过sql新建了一个数据库,生成的文件。
对官方的技术人员真是无语。
x64/x86 发布问题。
参照文章http://www.tuicool.com/articles/eAjeMb,但是在实际操作中,花费很长时间,根本无法实现。最终换用了文章中使用的版本,在不同的系统中测试通过。再次对官方无语。

相关插件下载

链接: http://pan.baidu.com/s/1dDDypah 密码: h715

配置文件代码

    <system.data>
        <DbProviderFactories>

            <!--ORACLE 驱动配置-->
            <remove invariant="Oracle.ManagedDataAccess.Client" />
            <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

            <!--SQLite驱动配置-->
            <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.90.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />

        </DbProviderFactories>
    </system.data>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
    </startup>

上面是oracle的。因为在系统中是动态使用sqlite数据库的,所以没有配置,而是动态的创建。

原文地址:https://www.cnblogs.com/zuolijun/p/3813208.html