各种数据库的entity framework提供者列表

那里有哪些供应商和您使用它们的经验

我想知道所有可能的原生.NET框架entity framework提供者,以及它们的缺陷,以及与默认的LINQ2Entities (来自MS for MS SQL)相比的局限性。 如果有更多的相同的数据库更好。 告诉我,我将用这个列表更新这个post。

随意添加额外的提供者直接到这个职位或提供一个答案和其他人(包括我)将其添加到列表中。

entity framework1

Microsoft SQL Server Standard / Enterprise / Express

  • Linq 2实体 – Microsoft SQL Server连接器
  • DataDirect ADO.NET数据提供程序

Microsoft SQL Server CE(精简版)

  • 任何供应商?

MySQL的

  • MySQL连接器 (从版本6.0开始) – 我已经阅读了在同一个expression式树中使用Skip()Take()Sort()的问题 – 每个人都欢迎input他们的经验/知识。

    注意 :Visual Studio Express Edition中不支持MySQL Connector / .NET Visual Studio集成,这意味着您将无法在数据库浏览器窗口中查看MySQL数据库,也无法通过Visual Studio向导对话框添加MySQL数据源。 有些用户可能会发现这限制了他们在Visual Studio Express中使用entity framework和MySQL的能力)。

  • Devart dotConnect for MySQL – 类似的问题,我读过的MySql的连接器,都试图怪罪MS [这些问题应该被解决 ]

SQLite的

  • Devart dotConnect for SQLite
  • System.Data.SQLite

PostgreSQL的

  • Devart dotConnect for PostgreSQL
  • Npgsql的

神谕

  • Devart dotConnect for Oracle
  • Oracle示例entity framework提供者 – 社区努力项目
  • DataDirect ADO.NET数据提供程序

DB2

  • IBM数据服务器提供程序具有EF支持 。 这是一些限制 。
  • DataDirect ADO.NET数据提供程序

SYBASE

  • Sybase iAnywhere
  • DataDirect ADO.NET数据提供程序

Informix的

  • IBM数据服务器提供程序支持Informix

火鸟

  • 具有EF支持的ADO.NET数据提供程序

提供者包装

  • EF的跟踪和caching提供程序

entity framework4( testing版

Microsoft SQL Server

  • 微软的Linq to Entities 4 – 与.net 4.0和Visual Studio 2010一起提供; 迄今为止EF4的唯一供应商

MySQL的

  • MySQL .NET连接器 ,主要是function性的,但是与CreateDatabase和DatabaseExists方法(v6.3.5)
  • Devart dotConnect for MySQL

SQLite的

  • Devart dotConnect for SQLite

PostgreSQL的

  • Devart dotConnect for PostgreSQL

神谕

  • Devart dotConnect for Oracle

Microsoft SQL Server分析服务(SSAS)

  • SSASentity framework提供者

DB2可以工作,但是如果你想使用一些我们都认为理所当然的开箱即用的.NET特性(想象一下会员和angular色提供者),那么你将得到相当多的工作。 DB2在存储过程方面做得并不太好,所以你也在研究很多参数化的内联SQL。

IBM也提供了一些性能问题。 DataDirect还有另一家供应商。 它看起来更高性能,但它会花费你。 对于像速度很重要的面向外部的网站而言,成本可能不会成为问题。

我相信,如果您正在构build另一个平台,那么DB2是一个很好的系统,但是它并没有真正用于.NET。 除非您已经与DB2结婚,否则我会在其他地方寻找。

我不认为DB2与EF 4一起工作。 如果有,请有人纠正我,告诉我它是如何完成的。 我无法让DB2提供者显示在“数据源”对话框中。

IBM的.NET数据服务器提供程序允许Informix使用EF。 看到这里: 链接文本

IBM的数据服务器提供程序包含一些限制,使其更加复杂的查询场景令人烦恼和脆弱。 另外,EDMXdevise器不能使用以“informix。*”为前缀的Informix表。 看到这里: 链接文本

你错过了SQLite的System.Data.SQLite 。 这是开源的,从我的经验来说相当可靠。 据我所知,它是SQL Server以外的数据库的第一个EF提供者之一

“跳过/拿走和订购”问题在几个月前在Devart供应商处得到解决。

关于EF4支持的一些说明
目前,我们提供了对Visual Studio Beta 1和EF4 Beta 1的支持。我们计划在12月底至1月初发布EF4版本。 我们不能称我们的entity framework支持是理想的 – 这个ORM最初是为MS SQL Serverdevise的,因此考虑到其他DBMS奇迹的可能性是非常有限的。

实施EF供应商的人有一些问题根本无法解决。 这里有一些例子。 在某些情况下,主要问题与EF运行时生成的CROSS APLY和OUTER APPLY语句相关联。 其他的数据库pipe理系统不提供这种说法,所以问题出现在翻译。 也应该认识到,在传统数据库的情况下,EF通常是不可用的。

我们考虑到对默认Microsoftdevise人员不满意的用户,并使用我们的产品发布Entity Developer (一个function强大的devise时间工具)。

EF 7支持以下数据库提供者

•Microsoft SQL Server

•SQLite

•Microsoft SQL Server精简版

•Npgsql(PostgreSQL)

IBM数据服务器

•内存(用于testing)

参考

MySQL有一个用于EF4的连接器 ,当前版本是6.3.5,它的主要function工作正常,但它仍然有几个方法的问题,例如

  • System.Data.Objects.ObjectContext.CreateDatabase()
  • System.Data.Objects.ObjectContext.DatabaseExists()

这使得很难充分利用模型优先的方法。 可以通过手动编辑MySQL脚本(可以使用CreateDatabaseScript方法)。 MySQL团队似乎并不急于解决这些错误,我不确定他们的承诺水平实际上是多less,但肯定比以前低了。

也就是说,同样的方法也会因为SQL CE而失败(他们没有实现,而且我也没有看到MS团队很快就可以解决这个问题)。

Take / Skip运营商的Connector / NET问题早已被确定(EF提供商目前与EF 5和EF 4兼容)。

在修正的错误中:

http://bugs.mysql.com/bug.php?id=45723

http://bugs.mysql.com/bug.php?id=72148

http://bugs.mysql.com/bug.php?id=70828

http://bugs.mysql.com/bug.php?id=69751

谢谢。