为什么Entity Framework不支持ODBC?

17

EF需要新数据提供程序而不能使用ODBC,这有什么特定的原因吗?我认为这必须是某种ORM特定的问题,但是NHibernate可以通过ODBC很好地工作。

我正在使用NHibernate,并且可以继续使用NHibernate,但我担心我不能假设任何未来的程序员都了解NHibernate。

1个回答

16
实体框架(Entity Framework)并不需要全新的数据提供程序,它需要扩展现有数据提供程序的实体框架提供程序来提供Entity Framework所需的附加服务,例如复杂SQL生成,这些服务不是现有ADO.NET数据模型的一部分。我认为没有什么阻止任何人基于现有的ADO.NET 2.0 ODBC桥接编写用于ODBC的实体框架提供程序。您可以下载一个针对SQL Server的示例提供程序的源代码,以了解在扩展现有的ADO.NET提供程序时所需的确切服务。

谢谢!SQL生成似乎并不简单。我想知道微软是否与Oracle/IBM在他们的提供程序上进行合作。对于大多数查询情况,似乎会有很多重叠。 - anonymous
嗯,ODBC已经完成了大量SQL生成工作,因此使用ODBC比使用[随机插入的DB服务器]更容易。 - Craig Stuntz
6
不过,微软会忽视这一点还是有点奇怪的。毕竟,他们发明了ODBC,并且所有的数据库产品仍然支持它。 - Matthew Flaschen
6
有人能提供有关Entity Framework(6.x)当前版本中ODBC支持状态的资源吗? - taz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接