设为首页 收藏本站
查看: 1252|回复: 0

[经验分享] EF+SQL server 转为 EF+SQLite

[复制链接]

尚未签到

发表于 2016-10-31 09:27:42 | 显示全部楼层 |阅读模式
  首先安装:sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe(http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
  http://www.sqlite.org/download.html)
  然后把sql server中用到的数据库用sql server tosqlite db conveter.exe(http://www.hdxz.com/soft/zt000570.html)生成db后缀的数据文件放在某目录。
  如果要查询可以用sqlitestudio.exe工具。
  1.引用System.Data.SQLite.dll和System.Data.SQLite.Linq.dll
  2.新建一个ADO.NET实体数据模型,也就edmx文件,新建过程和建sql server那个edmx文件一样,注意建立过程中“模型命名空间”改为和sql server那个edmx一样,建好后右键edmx文件以xml打开方式打开,
  把节点edmx:StorageModels下的schema的provider改为System.Data.SQLite,然后把改emdx的后台代码中的#Entity部分删除,不然会有entity的重复定义。到这来EF的步骤就完成了
  3.调用工程中
  配置文件添加
  <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.57.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
  </system.data>
  4.调用工程中新增ConnectionString
  <add name="***_sqlite" connectionstring="metadata=res://*/Model.UserModel.csdl|res://*/ModelSqlite.ModelSqlite.ssdl|res://*/modelSqlite.ModelSqlite.msl;Provider=System.Data.SQLite;provider connection string='data source={0}'"/>
  
  之前sql server 的connectionstring 是:<add name="***_sqlite" connectionstring="metadata=res://*/Model.UserModel.csdl|res://*/Model.UserModel.ssdl|res://*/Model.UserModel.msl;Provider=System.Data.SQLite;provider connection string='data source=.;initial catalog=usermangemnet;integrated security=true'"/>
  
  两个对比也就说应用了sql server 那个edmx的csdl部分,然后 provider connection string 只需提供数据库db文件的路径就可以。到这里配置就完成了
  5.接下来就是如何在两种数据库中切换了:可以利用“条件编译符号”
  比如在某项目中的生成属性中定义条件编译符号有Test那么就可以在代码中切换两种数据库了
  #if(Test)
  this._eneties=new usermangementEntity(string.formate(***_sqlite+"db文件的路径"));
  #else
  this._ennties=new usermanagementEntiry(connectionstring);
  #endif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-293666-1-1.html 上篇帖子: 【解决问题】完成从Mysql到SQLite数据库的整体迁移 下篇帖子: 如何将sql server数据库转化成sqlite数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表