EF Core数据库Provider一览

当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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值