-3

我已经阅读了一些关于实体框架的文档,所以我知道它使实体像我们的数据库(ORM)一样。

我试图更深入,但我没有得到满意的答案。

我想知道为什么以及何时使用实体框架?这个框架需要 LINQ 吗?

愚蠢的问题是

3-tier architecture 和 entityfrmaework 之间的“使用”有什么区别?

任何相关文件都会有所帮助

提前致谢。

4

1 回答 1

2

我开始知道它使实体像我们的数据库(ORM)。

:-/

实际上,只有当您决定从我们所谓的 DB First 方法开始时,EF 才会创建看起来像您的 DB 模型的实体。这样做,EF 将以某种方式对您的数据库模型进行逆向工程,并在 EDMX 文件中创建实体,该文件将成为您的业务模型。最佳实践是更改这些生成的实体并对其进行修改,以使它们看起来像一个真实的业务模型。

从我的角度来看,数据库模型和业务模型是两个完全不同的东西,因为它们的设计目标不同:数据库模型旨在能够有效地持久化和获取数据库数据,而业务模型的目标是概念化业务需求,并且它必须适合您的应用程序将如何操作它。好消息是 EDMX 是一个 3 部分文件,其中一个不同的区域用于表示 DB 模型,一个用于业务/概念模型,最后但并非最不重要的是:两者之间的映射!这使您可以拥有“真实”的业务模型,并能够以完全不同的结构保存数据。

有很多文档描述了不同的 EF 方法;您的起点应该是ADO .Net 站点

在这里,您将找到入门所需的所有内容,包括如何在不同方法之间进行选择。

现在,对于所有其他问题:

我想知道为什么以及何时使用实体框架?

EF 和其他 ORM 用于在您的数据库之上创建一个抽象层。它允许您操作对象而不是直接访问数据库。EF 是您的应用程序的数据访问层 (DAL),实体应该是您的业务/域模型。优点之一是它通过处理所有与数据库相关的代码来提高生产力,但另一方面,您必须注意将动态生成什么样的 T-SQL 代码。使用 ORM,很容易生成丑陋的查询,从而导致戏剧性的表现。请在 google 上搜索以找出使用 ORM 时应避免的最佳实践和事项。

3-tier architecture 和 entityfrmaework 之间的“使用”有什么区别?

正如我所说,EF 是你的 DAL。因此,EF 在某种程度上是您架构中的层之一。

希望有帮助!

于 2013-05-21T09:30:23.917 回答