当EF Core 1.x系列和2.0版本之间经过重大的重写时,所有EF Core数据库Provider都受到重创。从那时起,各种私人和商业开发团队一直在努力填补这个空白。

正文

当EF Core 1.x系列和2.0版本之间经过重大的重写时,所有EF Core数据库Provider都受到重创。从那时起,各种私人和商业开发团队一直在努力填补这个空白。

在本文中,我们只关注生产就绪的EF Core数据库Provider。那些仍处于预览或预发布状态的 Provider将在以后的文章中介绍。

SQL Server

SQL Server自然是由微软提供的,不过限制是仅适用于SQL Server 2008及更高版本。

对于SQL Server 2000和2005,你可以使用原始的Entity Framework。不过,这些版本不再受支持,所以不应继续在生产环境中使用。

PostgreSQL

在.NET中访问PostgreSQL的事实标准是Npgsql驱动程序和EF Core数据库Provider,不过它们并不是唯一的选择。

Devart为PostgreSQL提供了一个叫作dotConnect的商业版Provider。这项产品的宣传语如下所示:

用于PostgreSQL的dotConnect提供了与PostgreSQL数据库的高性能连接以及很多创新的开发工具和技术。它支持PostgreSQL的大量特定功能,例如SSL连接、PostgreSQL通知、PostgreSQL批量数据加载、GEOMETRY、PostgreSQL ARRAY类型,等等。

除了ADO.NET驱动程序,“dotConnect还支持ADO.NET Entity Framework、NHibernate和LinqConnect(以前是LINQ to PostgreSQL)”。最后一个是基于微软的LINQ to SQL ORM。

SQLite

微软的SQLite Provider是基于SQLitePCL的,SQLitePCL是SQLite的一个实现,一个“可移植的类库”框架。PCL是.NET标准的前身和子集。需要注意的是,这与SQLite官方的.NET标准驱动程序是相互独立的。当微软在实现SQLite数据库Provider时,这些官方驱动程序还不可用。

如果你认为微软的驱动程序还不够高效,Devart也提供了一个SQLite驱动程序和EF Provider。

MySQL

一些团队提供了MySQL数据Provider,首当其冲的是Oracle提供的官方MySQL Provider。

它的问题是底层的MySQL数据库驱动程序声誉不好。虽然是开源的,但它采用的是GPLv2许可,GPLv2是一个相当严格的许可,在.NET社区中并不常见。但真正的问题是Oracle的MySQL驱动程序不支持异步调用。根据MySqlConnector团队透露,它只是使用了其他线程来执行同步I/O。

因此,这个团队从头开始创建MySqlConnector。它是异步的,并采用了MIT许可。Pomelo Foundation的EF Core MySQL数据库Provider就是基于MySqlConnector构建的。

同样,Devart提供了MySQL数据库驱动程序和EF Core Provider。它们的独特功能包括“特定于MySQL的功能,如SSL和SSH连接、嵌入式服务器、压缩协议、HTTP通道,等等”。

Firebird

Firebird数据库在.NET社区中并没有得到很多关注,但它已经存在了很长时间。它最初是基于Borland的开源版InterBase,但大部分代码在过去19年中被重写过。

除了官方提供的Firebird数据库Provider外,Rafael Almeida还提供了EntityFrameworkCore.FirebirdSql,它与Firebird 2.x数据库兼容。

Progress OpenEdge

微软正在更新EF Core Provider列表。Alex Wiese最近推出的Progress OpenEdge EF Core Provider也才一个月左右。

微软Access

对微软Access的支持主要来自一个意大利人(被称为bubibubi)。他提供的库叫作EntityFrameworkCore.Jet,仅适用于.NET Framework。

之所以有这种限制,是因为OleDB不支持.NET Core,即使是在Windows上运行。这可能会在未来发生变化,因为很多WinForms和WPF应用程序无法在没有OleDB的情况下移植到.NET Core。除Access之外,很多应用程序使用OleDB驱动程序来读取Excel文件。

SQL Server Compact

自2013年以来,SQL Server Compact已被弃用,并被SQLite取代,但很多应用程序仍然有一些数据保存在SQL Server Compact中。如果你是这种情况,可以考虑使用Erik Ejlskov Jensen提供的SQL Server Compact EF Core数据库Provider。

由于SQL Server Compact及其底层驱动程序的设计,它仅适用于.NET Framework。

DB2

来自IBM的强大但很少被谈及的数据库DB2,针对Windows、Linux和OSX平台都需要单独的库。这三个库都直接由IBM提供。

Oracle

Oracle最初打算在2017年末对微软.NET Core托管的ODP.NET驱动程序进行认证。该计划于2017年3月公布,仅针对.NET Core 2.0。该计划于2018年2月进行了修订,预计将于2018年第3季度发布。由于错过了第二个截止日期,Oracle尚未公开讨论其修订计划。

Devart提供了一个商业版的Oracle数据库驱动程序和EF Core Provider。

查看英文原文:https://www.infoq.com/news/2019/01/EF-Core-Providers

EF Core数据库Provider一览相关推荐

  1. EF Core 数据库 Provider 一览

    当 EF Core 1.x 系列和 2.0 版本之间经过重大的重写时,所有 EF Core 数据库 Provider 都受到重创.从那时起,各种私人和商业开发团队一直在努力填补这个空白. 正文 当 E ...

  2. [翻译 EF Core in Action 2.3] 理解EF Core数据库查询

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  3. 任务42:EF Core Migration

    任务42:EF Core Migration 任务42:EF Core Migration 右边的是在VS2017中使用的命令,左边是在VSCode 的DOS窗体中使用的 最新版本的core 2.2. ...

  4. EF Core:一统SQL和NoSQL数据库

    推出EF Core的初衷之一,就是开发出一种可在很少甚至不更改代码的情况下使用SQL和NoSQL数据库的模型.Microsoft正向此目标迈出第一步,发布了用于Azure Cosmos DB的实验性E ...

  5. 实现自己的.NET Core配置Provider之EF

    <10分钟就能学会.NET Core配置>里详细介绍了.NET Core配置的用法,另外我还开源了自定义的配置Provider:EF配置Provider和Yaml配置Provider.本文 ...

  6. asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...

    [ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型 0 2018-06-30 07:00:08 官方教程: ...

  7. 【ASP.NET Core】EF Core 模型与数据库的创建

    大家好,欢迎收看由土星卫视直播的大型综艺节目--老周吹逼逼. 今天咱们吹一下 EF Core 有关的话题.先说说模型和数据库是怎么建起来的,说装逼一点,就是我们常说的 "code first ...

  8. .net core发布 正在发现数据上下文_使用EF Core实现数据库读写分离

    以下文章来源于朝夕Net社区 ,作者Eleven 朝夕Net社区 朝气.丰富.活跃的.Net社区,朝夕教育携百万粉丝共同打造!有技术,有感悟,有新闻,有照片,有故事,还有梦想! [精选转载]| 作者/ ...

  9. ef mysql 数据模型,EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...

    官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...

最新文章

  1. 刚开始学centos和Oracle
  2. 我要再接再力 学更多
  3. B. 熟练剖分(tree) (概率DP)
  4. OpenCV学习之Scalar数据类型
  5. ORM数据层框架的设计热点:更新指定的列的几种设计方案
  6. 如果让我做一回产品经理。。。
  7. ibatis(2)ibatis是什么
  8. 第八章方差分析以及线性回归(2)
  9. Android ViewPager + Fragment的布局
  10. 公众号发布代码最好的工具markdown语法
  11. 计算机网络class 3(速率的相关性能指标)
  12. 【转】Dalvik虚拟机的启动过程分析
  13. 问题五十四:怎么用ray tracing画参数方程表示的曲面(2)—— bezier surface
  14. 超分辨率重构之SRCNN整理总结(七)
  15. 干货 | 挖掘旅游热点吸引年轻人,携程自动热点投放系统的背后玩法
  16. 普鸥知识产权|如何申请美国外观专利?申请费用、时间、流程?
  17. 数据人必会的Excel|掌握32个Excel小技巧,成为效率达人(一)
  18. gopher攻击mysql_CTFweb类型(二十七)gopher对mysql的利用及例题讲解
  19. 基于某点评字体库的字体反爬
  20. vue的生命周期(详细)

热门文章

  1. linux下 proc 目录
  2. python运维开发之socket网络编程01
  3. ubuntu安装使用不同版本的gcc
  4. Struts中乱码问题解决
  5. UML应用开发详解--视频
  6. Multiple Spring Data modules found, entering strict repository configuration mode!
  7. 共谋大数据产业发展新篇章
  8. 定义查询构建器IFeatureLayerDefinition
  9. 微软私有云系列----证书配置
  10. log4j 日志限制大小 拆分成30个 不按日期分日志 按大小拆分 按日期产生...