各种数据库的实体框架提供程序列表

时间:2009-12-08 07:51:04

标签: .net database entity-framework orm provider

有哪些提供商以及您使用它们的经验

我想知道所有可能的本机.NET Framework实体框架提供程序以及它们与默认 LINQ2Entities (来自MS for MS SQL)的限制。如果对同一个数据库有更多的更好。告诉我,我将用这个列表更新这篇文章。

可以直接在此帖子中添加其他提供者或提供答案,其他人(包括我)会将其添加到列表中。

实体框架1

Microsoft SQL Server Standard / Enterprise / Express

Microsoft SQL Server CE(精简版)

  • 任何提供商?

的MySQL

  • MySQL Connector(自6.0版开始) - 我在同一个表达式树中使用Skip()Take()Sort()时已经阅读了相关问题 - 欢迎大家输入他们的经验/知识。

      

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

  • Devart dotConnect for MySQL - 我读过的MySql连接器的类似问题,两者都试图责怪MS [这些问题应该是{{3 }}]

SQLite的

的PostgreSQL

的Oracle

DB2

的Sybase

的Informix

火鸟

提供商代码

实体框架4( beta

Microsoft SQL Server

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

的MySQL

SQLite的

的PostgreSQL

的Oracle

Microsoft SQL Server Analysis Services(SSAS)

9 个答案:

答案 0 :(得分:3)

DB2可以工作,但是如果你想使用我们都认为理所当然的一些现成的.NET功能(想想成员资格和角色提供者),那么你将会有很多工作要做。手中。 DB2对存储过程并不是很好,因此您也在查看大量参数化内联SQL。

我也遇到了IBM提供商的一些性能问题。还有一家名为DataDirect的公司提供的提供商。它看起来更高效,但它会花费你。对于像外部网站这样速度很重要的东西,成本可能不会成为问题。

我确信如果你在另一个平台上构建DB2,那么DB2是一个很棒的系统,但它并不是真正用于.NET的。除非你已经与DB2结婚,否则我会去别处看看。

答案 1 :(得分:3)

我认为DB2不适用于EF 4。如果确实如此,请有人纠正我并告诉我它是如何完成的。我无法让DB2提供程序显示在“数据源”对话框中。

答案 2 :(得分:2)

IBM的.NET数据服务器提供程序允许Informix与EF协同工作。见这里:link text

答案 3 :(得分:2)

IBM的数据服务器提供程序包含一些限制,使其对于更复杂的查询方案而言更加烦躁和脆弱。此外,EDMX设计器不支持前缀为“informix。*”的Informix表。见这里:link text

答案 4 :(得分:2)

您缺少SQLite的System.Data.SQLite。它是开源的,从我的经验来看非常可靠。据我所知,它是除SQL Server之外的第一批数据库EF提供商

答案 5 :(得分:2)

几个月前,Devart提供商修复了“Skip / Take and ordering”问题。

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

实施EF提供商的人无法解决许多问题。可以使用一些示例here。在某些情况下,主要问题与EF运行时生成的CROSS APLY和OUTER APPLY语句有关。其他DBMS不提供此声明,因此转换会出现问题。还应该意识到,对于遗留数据库,EF通常是不可用的。

我们会考虑对默认Microsoft设计人员不满意的用户,并使用我们的产品发送Entity Developer - 一个功能强大的设计时工具。

答案 6 :(得分:2)

EF 7支持以下数据库提供程序

•Microsoft SQL Server

•SQLite

•Microsoft SQL Server Compact Edition

•Npgsql(PostgreSQL)

•IBM数据服务器

•InMemory(用于测试)

Reference

答案 7 :(得分:1)

MySQL有一个connector for EF4,当前版本为6.3.5,其主要功能正常,但仍有几个方法存在问题,例如

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

这使得完全使用模型优先方法变得困难。可以通过手动编辑MySQL脚本(可通过CreateDatabaseScript方法获得)来实现。 MySQL团队似乎并不急于解决这些错误,我不确定承诺级别实际上是什么,但它肯定比以前更低。

话虽如此,同样的方法也失败了SQL CE(它们没有实现,我也没有看到MS团队很快就会解决这个问题。)

答案 8 :(得分:0)

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

感谢。