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

Posted

技术标签:

【中文标题】各种数据库的实体框架提供程序列表[关闭]【英文标题】:A list of Entity Framework providers for various databases [closed] 【发布时间】:2010-12-24 08:01:43 【问题描述】:

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

我想了解所有可能的本地 .NET Framework 实体框架提供程序,以及与默认的 LINQ2Entities(来自 MS for MS SQL)相比它们的局限性。如果同一个数据库有更多,那就更好了。告诉我,我会用这个列表更新这篇文章。

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

实体框架 1

Microsoft SQL Server Standard/Enterprise/Express

Linq 2 实体 - Microsoft SQL Server 连接器 DataDirect ADO.NET Data Providers

Microsoft SQL Server CE(精简版)

任何供应商?

MySQL

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

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

Devart dotConnect for MySQL - 与 MySql 的连接器类似的问题,正如我所读,两者都试图将其归咎于 MS [这些问题应该是 solved]

SQLite

Devart dotConnect for SQLite System.Data.SQLite

PostgreSQL

Devart dotConnect for PostgreSQL Npgsql

甲骨文

Devart dotConnect for Oracle Sample Entity Framework Provider for Oracle - 社区努力项目 DataDirect ADO.NET Data Providers

DB2

IBM 数据服务器提供程序has EF support。这里有一些limitations。 DataDirect ADO.NET Data Providers

Sybase

Sybase iAnywhere DataDirect ADO.NET Data Providers

Informix

IBM 数据服务器提供程序supports Informix

火鸟

ADO.NET Data Provider with EF support

提供者包装器

Tracing and Caching Providers for EF

实体框架 4(beta

Microsoft SQL Server

Microsoft 的 Linq to Entities 4 - 随 .net 4.0 和 Visual Studio 2010 提供;迄今为止唯一的 EF4 提供者

MySQL

MySQL .NET connector,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)

SSAS Entity Framework Provider

【问题讨论】:

任何人 - 是否有任何 InMemory 提供程序?当然,可用的选项将被大量剥离......但总比没有好,对吧? sqlite 有一个内存数据库选项,非常适合自动化测试,快速、轻量且几乎功能齐全。 【参考方案1】:

DB2 可以工作,但如果您想使用我们都认为理所当然的一些开箱即用的 .NET 功能(想想成员资格和角色提供者),您将需要在您的手。 DB2 在存储过程方面做得并不好,因此您还看到了很多参数化的内联 SQL。

我还遇到了来自 IBM 的提供商的一些性能问题。一家名为 DataDirect 的公司提供了另一个提供商。它看起来更高效,但它会让你付出代价。对于速度很重要的面向外部的网站,成本可能不是问题。

如果您在另一个平台上构建,我相信 DB2 是一个很棒的系统,但它并不是真正设计为与 .NET 配合使用。除非您已经与 DB2 结婚,否则我会寻找其他地方。

【讨论】:

【参考方案2】:

我认为 DB2 还不能与 EF 4 一起使用。如果是这样,请有人纠正我并告诉我它是如何完成的。我无法让 DB2 提供程序显示在数据源对话框中。

【讨论】:

上层列表并没有说明 DB2 对 EF4 的支持。【参考方案3】:

IBM 的 .NET 数据服务器提供程序允许 Informix 与 EF 一起使用。见这里:link text

【讨论】:

【参考方案4】:

IBM 的数据服务器提供程序包含一些限制,使其在更复杂的查询场景中变得烦人和脆弱。此外,EDMX 设计器不适用于以“informix.*”为前缀的 Informix 表。看这里:link text

【讨论】:

【参考方案5】:

对于 SQLite,您缺少 System.Data.SQLite。它是开源的,根据我的经验非常可靠。据我所知,它是 SQL Server 以外数据库的首批 EF 提供程序之一

【讨论】:

【参考方案6】:

几个月前,Devart 提供商已修复了“跳过/接受和订购”问题。

关于 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 - 一个强大的设计时间工具。

【讨论】:

您的提供程序是否与接受参数的函数导入(存储过程)一起正常工作?因为我在使用 MySql 的连接器时遇到问题。 我们目前没有任何考虑参数化函数导入的开放请求。但是您可以检查 dotConnect for MySQL 是否满足您的要求,只需从我们的网站下载试用版即可。 EF v1 的另一件事是实际 - 我们不仅为函数导入提供支持,还为不返回任何结果集的过程提供支持。这是由于特定的代码生成和实体开发工具实现的。【参考方案7】:

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

• 微软 SQL 服务器

• SQLite

• Microsoft SQL Server 精简版

• Npgsql (PostgreSQL)

• IBM 数据服务器

• InMemory(用于测试)

Reference

【讨论】:

我认为它现在已重命名为 EntityFrameworkCore,因为它有很大不同:thedatafarm.com/data-access/…【参考方案8】:

MySQL 有一个connector for EF4,当前版本是 6.3.5,它的主要功能运行良好,但它仍然存在一些方法问题,例如

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

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

话虽如此,SQL CE 也有同样的方法失败(它们没有实现,我认为 MS 团队不太可能很快解决这个问题)。

【讨论】:

更多关于 MySQL 对 VS2010/EF4 的支持可以在这个页面上找到:dev.mysql.com/doc/refman/5.1/en/…。您将需要 MySQL Connector/Net 6.3.2 或更高版本。【参考方案9】:

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

谢谢。

【讨论】:

以上是关于各种数据库的实体框架提供程序列表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

数据库表的列中的值的下拉列表-MVC实体框架

如何使用 LINQ 从列表中选择各种长度的部分 [关闭]

实体框架作为数据库代码的类型检查/验证系统 [关闭]

SSM框架MyBatis的各种查询功能

可选的数据库实体

带有 XML 文件的实体框架 [关闭]