各种数据库的Entity Framework提供程序列表


82

那里有哪些提供商,您使用它们的经验

我想知道所有可能的本机.NET Framework实体框架提供程序,以及与默认LINQ2Entities(来自MS的MS SQL)相比的限制。如果对于同一数据库有更多甚至更好。告诉我,我将使用此列表更新此帖子。

随意将其他提供程序直接添加到此帖子中或提供答案,其他人(包括我)会将其添加到列表中。

实体框架1

Microsoft SQL Server标准版/企业版/快速版

Microsoft SQL Server CE(精简版)

  • 有提供者吗?

的MySQL

  • MySQL连接器(从6.0版开始)-我已经阅读了有关使用时的问题Skip()Take()并且Sort()在同一棵表达式树中-每个人都欢迎输入有关此方面的经验/知识。

    注意:Visual Studio的Express Edition不支持MySQL Connector / NET Visual Studio集成,这意味着您将无法在“数据库资源管理器”窗口中查看MySQL数据库,也无法通过Visual Studio向导对话框添加MySQL数据源。一些用户可能会发现这限制了他们在Visual Studio Express中使用实体框架和MySQL的能力。

  • Devart dotConnect为MySQL -类似的问题MySQL的连接器,因为我已经阅读并都试图指责MS吧 [应该这些问题有待解决]

SQLite的

PostgreSQL的

甲骨文

DB2

Sybase公司

Informix

火鸟

提供程序包装

实体框架4(测试版

Microsoft SQL服务器

  • Microsoft的Linq to Entities 4-.net 4.0和Visual Studio 2010附带;到目前为止,EF4的唯一提供商

的MySQL

SQLite的

PostgreSQL的

甲骨文

Microsoft SQL Server分析服务(SSAS)


2
任何人-是否有InMemory提供程序?当然,可用的选项会被大量剥夺..但是总比没有好,对吧?
Pure.Krome

sqlite具有内存中的db选项,非常适合自动测试,快速,轻便且功能齐全。
杰森·梅克利

1
有趣的事实:这是SO上具有5个或更多答案的少数问题之一,并且所有可用答案的总分都小于问题分数的1/3。:)
dotNET

Answers:


3

DB2可以工作,但是如果您想使用我们都认为理所当然的一些现成的.NET功能(例如成员资格和角色提供者),那么您将有很多工作要做。DB2在存储过程方面确实做得不好,因此您也正在研究许多参数化的内联SQL。

我还遇到了IBM提供程序的一些性能问题。还有一家名为DataDirect的公司可以提供的其他提供商。它看起来性能更好,但是会花钱。对于像外部网站这样的网站来说,速度很重要,那么成本可能就不是问题。

我敢肯定,如果您要在另一个平台上构建DB2,那么它是一个很棒的系统,但是它并不是为与.NET完美结合而设计。除非您已经与DB2结婚,否则我会去其他地方。


3

我认为DB2尚未与EF 4兼容。如果是这样,请有人纠正我并告诉我它是如何完成的。我无法让DB2提供程序出现在“数据源”对话框中。


1
无论如何,上层列表没有说明DB2对EF4的支持。
罗伯特·科里特尼克


2

IBM的数据服务器提供程序包含一些限制,这些限制使其在更复杂的查询场景中变得恼人且脆弱。此外,EDMX设计器不适用于以“ informix。*”为前缀的Informix表。参见此处:链接文字



2

几个月前,在Devart提供程序中解决了“跳过/接单和订购”问题。

关于EF4支持的一些说明
目前,我们提供对Visual Studio Beta 1和EF4 Beta 1的支持。我们计划在12月底-1月初发布具有EF4支持的版本。我们不能说我们的实体框架支持是理想的-这个ORM最初是为MS SQL Server设计的,因此考虑到其他DBMS奇迹的可能性大大受到限制。

实现EF提供程序的人有很多问题根本无法解决。这里有一些例子。在某些情况下,主要问题与EF运行时生成的CROSS APLY和OUTER APPLY语句相关。其他DBMS不提供此声明,因此翻译时会出现问题。还应该认识到,在遗留数据库的情况下,EF通常不适用。

我们考虑到对默认Microsoft设计器不满意的用户,并随我们的产品一起提供了Entity Developer(一种功能强大的设计时工具)。


您的提供程序是否可以与接受参数的函数导入(存储过程)一起正常使用?因为我在使用MySql的连接器时遇到问题。
罗伯特·科里特尼克

目前,我们没有任何考虑参数化函数导入的打开请求。但是您可以检查dotConnect for MySQL是否满足您的要求,只需从我们的网站下载试用版即可。EF v1的另一件事-我们不仅为函数导入提供支持,而且还为不返回任何结果集的过程提供支持。由于特定的代码生成和Entity Developer工具,实现了这一目标。
Devart


1

MySQL有一个用于EF4连接器,当前版本为6.3.5,其主要功能正常运行,但仍存在一些方法问题,例如

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

这使得难以完全使用模型优先方法。可以通过手动编辑MySQL脚本(可通过CreateDatabaseScript方法获得)来实现。MySQL团队似乎并不急于解决这些错误,我不确定他们的承诺水平实际上是多少,但是肯定比过去要低。

话虽这么说,相同的方法在SQL CE中也失败了(它们没有实现,而且我认为MS团队不太可能很快解决)。


可以在以下页面上找到有关VS2010 / EF4的MySQL支持的更多信息:dev.mysql.com/doc/refman/5.1/en/…。您将需要MySQL Connector / Net版本6.3.2或更高版本。
mathijsuitmegen 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.