zoukankan      html  css  js  c++  java
  • 使用Npgsql实现Linq To PostgreSQL

    首先,扫盲一下背景知识: 

    LINQ 和 ADO.NET

    What is Entity Framework?

     

    然后,LINQ to SQL是只支持微软亲儿子SQL Server的。如果我们要连上PostgreSQL,需要第三方插件。

     

    第一个纳入视线的是Devart LinqConnect 

    可惜他们家的产品里轻量版不支持LINQ,专业版是收费的,

    本来还想薅一薅专业版试用期一个月的羊毛,结果官网直接访问不了了,果断弃坑。

     

    然后硬着头皮去google了一下,

    发现Npgsql(我司老朋友了)是支持EF的

    那就试一把:

    步骤一:VS扩展插件搜索并安装Npgsql PostgreSQL Interaction最新版。

    步骤二:NuGet里搜索并安装EntityFramework6.Npgsql,Npgsql最新版。

     

    一试不要紧,又是各种问题,比如安装完成后,还是连库驱动列表里找不到PostgreSQL Database的数据源...

     

    咋整,再去网上翻翻看,结果在插件Npgsql PostgreSQL Interaction官方下载页面上,

    最新提问就在说Ver4.1.X.X版本的插件有问题。。。

    太阳底下没有新鲜事啊。。。(时间戳:2020/08/07)

     

    没办法,又去查,直接翻到github上看源码,不,源码我看不懂,看看大家的抱怨吧,

    比如这个:Cannot use EF6 Entity Data Model wizard #1775 是跟我同样的问题。

     

    看他样子好像用低版本就解决了。那拿个低版本的试试?

    继续翻github,找到3.2.7版本,下载并安装这两个货:

    Npgsql-3.2.7.msi  (连库基础)
    Npgsql.vsix (VS扩展插件即Npgsql PostgreSQL Interaction这个东东)

    重点一:这里可以回到NuGet里安装,不再选择最新版,选择3.2.7版本就好。

    然后扩展插件里,再次安装EntityFramework6.Npgsql (要关闭自动升级),相应版本为3.1.1。
    重点二:以上3个安装的工具/插件,有版本配套要求,详见Cannot use EF6 Entity Data Model wizard #1775

     

    --------------------------------------------------------------我是昏割线--------------------------------------------------------------------------

    终于迎来了见证奇迹的时候

    连库试一把看看,可以啦。

        

     

    新建ADO.NET Entity Data Model也能出来啦:

         

     

    LINQ一把看看:

       

     

     完美完美!

     
    --------------------------------------------------------------我是昏割线--------------------------------------------------------------------------

    本来故事到这里就结束了,万万没想到,重点学(co)习(py)的一篇博文里。。。。 

    汗颜,我遇到的问题,这里都说到了,我还到处翻,可翻了我老半天。。。。

     EntityFramework6(EF6)连接Postgresql数据库问题总结

     

    彩蛋

    这里还有一些开源的ORM框架,有空的时候去扒一扒看看。

     

    Dos.ORM(原Hxj.Data)

    于2009年发布、2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大、最活跃、最完善的国产ORM。

    初期开发过程参考了NBear与MySoft,吸取了他们的一些精华,加入新思想,同时参考EF的Lambda语法进行大量扩展。

    Scree - 基于ORM的框架思想与体系

    这是一套使用C#开发的ORM框架,对象基于版本控制,集成事务、缓存、同步与锁。作者力图在简单、实用、可扩展和分布式中寻求合适的平衡,

    它并不仅仅是ORM,而是一整套基础架构的思想,在简洁直白中传达架构思维的艺术。

    这么长,看完点个赞。

  • 相关阅读:
    第十一章 前端开发-jQuery
    第十一章 前端开发-JavaScript
    js特效 15个小demo
    开发”小米商城官网首页”(静态页面)
    浅析BFC及其作用
    python mysql curros.executemany 批量添加
    第十一章 前端开发-css
    spark读取文件机制 源码剖析
    zookeeper从入门到放弃(转载学习)
    hbase架构和读写过程
  • 原文地址:https://www.cnblogs.com/soulxj/p/13453601.html
Copyright © 2011-2022 走看看