就像标题所说:为什么包括微软在内的人说ORM只是实体框架中的一个功能?它和典型的ORM有什么不同?对我来说,EDM与来自nHibernate的XMl映射相同。为什么微软说这不一样?
答案 0 :(得分:4)
将实体框架与大多数(如果不是全部)其他ORM分开的一件事是,有三层 - 一个存储模型,它是物理数据库模型(表,视图等),一个概念模型,用于表示应用中的对象,以及这两者之间的映射层。
您可以在EF中进行映射,其中单个.NET对象映射到多个数据库表和其他内容。您还可以将对象继承层次结构映射到表示数据库表中的那些方式。
NHibernate可以做类似的事情,肯定是在继承领域(不确定将一个.NET对象映射到多个表)。
几乎所有其他ORM只是一个或多或少美化的数据库表到.NET对象的1:1映射 - 没有映射和建模功能。
答案 1 :(得分:2)
这实际上是一种营销,但基于真正的努力。实体框架是一个ORM,但同时它是数据访问的MS战略平台。实体框架是许多其他高级API的基础层,如WCF数据服务,WCF RIA服务,ASP.NET动态数据等。这些API也适用于其他数据源,但它们主要是为EF开发的,并与EF一起使用。这就是MS指出的差异。
我的观点是,很高兴看到MS有远见和策略但同时我希望看到工作强大的ORM,而不是营销陈述,向我展示我不需要的功能。 / p>