什么是实体框架?我为什么要用它?没有linq可以使用吗?

时间:2013-05-21 06:23:21

标签: asp.net sql-server entity-framework orm

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

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

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

而愚蠢的问题是

3层架构与entityfrmaework之间“使用”的区别是什么?

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

提前感谢。

2 个答案:

答案 0 :(得分:2)

  

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

: - /

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

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

有很多文档描述了不同的EF方法;你的出发点应该是ADO .Net site

Here,您将找到开始所需的所有内容,包括如何选择不同的方法。

现在,您还有其他问题:

  

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

EF和其他ORM用于在数据库之上创建抽象层。它允许您操纵对象而不是直接访问数据库。 EF是应用程序的数据访问层(DAL),实体应该是您的业务/域模型。其中一个优点是它可以通过处理所有与DB相关的代码来提高工作效率,但另一方面,您必须注意动态生成哪种类型的T-SQL代码。使用ORM,可以很容易地生成丑陋的查询,从而产生戏剧性的表现。请在谷歌上搜索,以了解使用ORM时应避免的最佳做法和事项。

  

3层体系结构与“使用”之间的区别是什么?   entityfrmaework?

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

希望有所帮助!

答案 1 :(得分:1)

this is very good article for entity framework

IN Basis它只是对象关系模型,但它可以与任何数据库提供程序一起使用,例如sql server,oracle with latest version和mysql

阅读本文一次然后练习。实体框架易于理解和实施。