ef to sqlite 实际开发问题终极解决方法
- 版本问题
- vs安装问题
- 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数据库的,所以没有配置,而是动态的创建。