EF Core数据库Provider一览

\n

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

\n
\n

正文

\n

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

\n

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

\n

SQL Server

\n

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

\n

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

\n

PostgreSQL

\n

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

\n

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

\n
\n

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

\n
\n

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

\n

SQLite

\n

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

\n

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

\n

MySQL

\n

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

\n

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

\n

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

\n

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

\n

Firebird

\n

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

\n

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

\n

Progress OpenEdge

\n

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

\n

微软Access

\n

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

\n

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

\n

SQL Server Compact

\n

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

\n

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

\n

DB2

\n

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

\n

Oracle

\n

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

\n

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

\n

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

\n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flybirding10011

谢谢支持啊999

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值