【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

EF Core 数据库 Provider 一览

  • 2019-01-07
  • 本文字数:1920 字

    阅读完需:约 6 分钟

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


2019-01-07 10:456821
用户头像

发布了 731 篇内容, 共 432.3 次阅读, 收获喜欢 1997 次。

关注

评论

发布
暂无评论
发现更多内容

百度工程师浅谈分布式日志

百度Geek说

分布式 运维 日志 百度文库 企业号 2 月 PK 榜

滴滴前端一面常考手写面试题合集

helloworld1024fd

JavaScript

云原生观测性--OpenTelemetry 之实战篇

Daocloud 道客

云原生 可观测性 OpenTelemetry

React源码分析7-state计算流程和优先级

goClient1992

React

React源码分析5-commit

goClient1992

React

ChatGPT 入门案例|商务智能对话客服(四)| 社区征文

TiAmo

AI ChatGPT

每日一题之Vue数据劫持原理是什么?

bb_xiaxia1998

Vue

高级前端二面必会vue面试题合集

bb_xiaxia1998

Vue

别错过!4C首发直播,上届全国总冠军带你入门赛题

飞桨PaddlePaddle

计算机 飞桨 PaddlePaddle

优质的双机热备软件厂家是哪家?咨询电话多少?

行云管家

高可用 双机热备 双机热备软件

在vue的v-for中,key为什么不能用index?

bb_xiaxia1998

Vue

预告| 亮点抢先看!第四届OpenI/O启智开发者大会主论坛24日启幕!

OpenI启智社区

人工智能 开发者大会 算力网络 OpenI启智社区

面试官:能用JavaScript手写一个bind函数吗

helloworld1024fd

JavaScript

NFT链游开发实现DAPP系统落地

薇電13242772558

NFT 链游

镇江有具有资质的等保测评机构吗?在哪里?

行云管家

等保 等级保护 等保测评 镇江

云业务成本的组成与管理趋势

SEAL安全

云服务 云成本 FinOps 企业号 2 月 PK 榜

社招前端一面必会vue面试题

bb_xiaxia1998

Vue

即刻报名!飞桨黑客马拉松第四期如约而至,等你挑战

飞桨PaddlePaddle

深度学习 paddle 开源 大赛 飞桨

Hadoop 及Spark 分布式HA运行环境搭建

京东科技开发者

大数据 hadoop spark 后端 企业号 2 月 PK 榜

有哪些值得推荐的敏捷开发工具❓

没有用户名丶

混沌工程之 ChaosBlade 故障注入百宝箱

柠檬汁Code(binbin0325)

源码分析 混沌工程 故障注入 ChaosBlade Chaos

一图读懂阿里云RDS架构与选型

NineData

数据库 阿里云 Serverless RDS arm

听说 ChatGPT 推荐了一场技术活动,就在本周六的北京?

Daocloud 道客

北京 技术活动

面试官:请实现Javascript发布-订阅模式

helloworld1024fd

JavaScript

火山引擎数智平台ByteHouse入围稀土掘金《Top10年度创新产品》

字节跳动数据平台

大数据 云原生 Clickhouse

React源码分析6-hooks源码

goClient1992

React

软件测试/测试开发 | App常见bug解析

测试人

软件测试 自动化测试 测试开发 app测试

美团前端常考手写面试题总结

helloworld1024fd

JavaScript

预告| 2月24日不见不散!开源治理专场约定你

OpenI启智社区

人工智能 开源社区 开发者大会 开源治理 OpenI启智社区

基金行业,镭速文件传输系统方案

镭速

一台不容错过的Java单元测试代码“永动机”

京东科技开发者

Java 单元测试 京东云 京东技术

EF Core数据库Provider一览_数据库_Jonathan Allen_InfoQ精选文章