有哪些提供商以及您使用它们的经验
我想知道所有可能的本机.NET Framework实体框架提供程序以及它们与默认 LINQ2Entities (来自MS for MS SQL)的限制。如果对同一个数据库有更多的更好。告诉我,我将用这个列表更新这篇文章。
可以直接在此帖子中添加其他提供者或提供答案,其他人(包括我)会将其添加到列表中。
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
火鸟
提供商代码
Microsoft SQL Server
的MySQL
SQLite的
的PostgreSQL
的Oracle
Microsoft SQL Server Analysis Services(SSAS)
答案 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(用于测试)
答案 7 :(得分:1)
MySQL有一个connector for EF4,当前版本为6.3.5,其主要功能正常,但仍有几个方法存在问题,例如
这使得完全使用模型优先方法变得困难。可以通过手动编辑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
感谢。