![]() |
1
12
这个 Microsoft ADO.NET Entity Framework 是一个 Object-Relational Mapping Microsoft的框架,旨在让您编写(某种程度上)与数据库无关的代码。所有主要的DBMS都支持实体框架,但是对于许多DBMS(如MySQL、Postgres),您需要下载与.NET框架安装不同的内容。 注意:我还没有使用O/RM工具来处理一个大型项目,在这个项目中,至少有一种情况下我们必须使用本机SQL——要么是针对特定于数据库的功能,要么是出于性能原因(需要以特定的方式编写一个查询来获得一个好的查询计划)。但是一个好的O/RM在大多数时候都可以工作,以防止不得不编写SQL。 这就是说,实体框架的当前版本在许多维度上相当有限——其他O/RM框架如 NHibernate , SubSonic 等更为成熟,其中“成熟”意味着支持更广泛的DBMS功能,而不必使用本机SQL、更广泛的社区支持、更好的性能等。 这是我礼貌地说的,对于一个现实世界中相对复杂的项目,我不认为当前版本的实体框架相对于其他可用的O/RM工具是最好的方式。 显然,即将到来的 .NET 4.0/VS2010 version of the Microsoft Entity Framework 情况有了很大的改善,所以上述说法明年可能不会成立。例如,新的实体框架增加了对DDL的支持,因此您可以以DBMS独立的方式创建表和索引。此外,.NET 4.0实体框架正在利用一个很酷的特性 T4 Templates 这是在构建时自动生成代码的一个很好的特性,对于O/RM包装器等需要与外部DB模式保持同步的事情来说,这一点很重要,而且与在运行时才知道数据库列类型的O/RM工具相比,O/RM工具应该产生更好的(也称为预编译)性能。 |
![]() |
2
2
正如我所了解的,您正在寻找用于编写RDBMS独立SQL的工具,但不是ORM。这是不同ORM供应商以不同方式解决的实际问题。我可以提一下 Xtensive SQL DOM 为ORM开发的工具- DataObjects.Net . 它是对SQL的抽象,允许使用功能齐全的DOM模型编写查询。目前,SQL DOM并不是与dataobjects.net分开升级的,但它是一个开放源代码产品,您当然可以询问它的作者。据我所知,它已成功应用于一些第三方项目。 |
![]() |
3
1
不是直接来自微软。这些工具通常被命名为对象关系映射器或简称ORM。例如,NHibernate是一种常见且广泛使用的ORM,非常适合您的需求。当然,还有其他商业产品,如telerik openaccess orm、devexpress xpo或remobjects dataabstract,它们将帮助您成为数据库不可知者。 |
![]() |
Montaser Majid · 用于从多行中提取单行的SQL查询 3 年前 |
![]() |
Chance · 根据Sequelize中的字段拉入特定记录/行 3 年前 |
![]() |
lambchop01 · GORM如何为相似实体之间的关系建模 3 年前 |
![]() |
Shale · 如何将此查询更改为ORM? 3 年前 |
![]() |
Daniel Morales · 替换mongo DB中的嵌入字段 3 年前 |
![]() |
Vinay P · NodeJS和ORM? 7 年前 |
![]() |
MadDoctor5813 · 在Django模型中创建“简单”字典? 7 年前 |