NHibernate与Entity Framework 4.1中的DataBase支持

Jua*_*món 3 database nhibernate entity-framework

我正在研究在我必须开发的新Web应用程序中使用的不同ORM.

我在NHibernate和EntityFramework 4.1之间犹豫不决.

我知道NHibernate确实支持不同的数据库(如SQL Server,MySQL,Oracle等).不是吗?

实体框架怎么样?我找不到它支持的数据库(我认为它与数据库无关,但我不太确定).例如,我无法使用MySQL运行(使用MySQL Connector 6.4.3).

我想要的答案只是关于不同数据库的支持.stackoverflow中有一些关于"NHibernate vs Entity Framework"的信息.

小智 7

实体框架查询由三个"层"转换为最终形式(发送到DB):
1.对象服务
2. EntityClient数据提供者
3. ADO .NET数据提供者.
对象服务层是实体框架的一个组件,使您可以使用作为实体类型实例的公共语言运行时(CLR)对象来查询,插入,更新和删除数据.
实体框架包括EntityClient数据提供程序,它管理连接,将实体查询转换为特定于数据源的查询,并返回实体框架用于将实体数据实现为对象的数据读取器.
传统的ADO.NET仍然用于与底层数据库进行通信.

这是什么意思?这意味着实体框架被设计为数据库独立.如果数据库提供程序已为ADO .NET创建提供程序(适用于MySQL,Oracle等),则可以将其用于每个数据库.
对于MySQL,您应该能够使用EF和您提到的连接器(更多信息:http://dev.mysql.com/doc/refman/4.1/en/connector-net-visual-studio-entity-framework. HTML)


Dmi*_*try 7

开箱即用的NHibernate 支持以下内容:

  • Microsoft SQL Server(包括精简版)
  • 神谕
  • Microsoft Access
  • 火鸟
  • PostgreSQL的
  • DB2 UDB
  • MySQL的
  • SQLite的

需要安装相应的ADO.NET提供程序.除了ADO.NET提供程序之外,如果要扩展它以支持列表中没有的数据库,NHibernate还需要自己的"驱动程序"和"方言".