ADO.NET Entity Framework 的实际好处是啥?

Posted

技术标签:

【中文标题】ADO.NET Entity Framework 的实际好处是啥?【英文标题】:What is the actual benefit of ADO.NET Entity Framework?ADO.NET Entity Framework 的实际好处是什么? 【发布时间】:2010-02-20 03:59:34 【问题描述】:

我正在阅读这篇关于ADO.NET Entity Framework 的文章,发现它非常有趣,虽然在第一张照片中我无法破译很多东西。我正在再次阅读这篇文章,以了解其背后的真正逻辑。

a) 我想到的一个问题是为什么我们需要一个 ORM 框架(通常)?

b) 以及为 .NET 提供的其他 ORM 框架,如 Spring.NET、Linq to Sql、NHibernate 等。为什么我们更喜欢 ADO.NET Entity Framework?

【问题讨论】:

Entity Framework 是微软目前正在推进的主要 ORM。如果您想从 Microsoft 获得 ORM,这就是选择它的理由。其他 ORM 提供不同的功能,*** 上还有许多其他关于比较 .NET ORM 的问题 (***.com/questions/1377236/…)。 【参考方案1】: What? Why? Why not?

b.主观。由于我没有使用过EF,我可能无法提供好的意见。

【讨论】:

【参考方案2】:

有几个优点。其中重要的是:

    为 CRUD 操作(创建、读取、更新、删除)提供专用功能。易于实现 CRUD 操作。

    如果要替换数据存储,无需修改数据访问逻辑即可轻松替换,因为所有数据访问逻辑都存在于更高级别。

    易于管理表之间的一对一、一对多和多对多关系。

    概念模型可以用更好的方式表示。

    开发人员可以减少用于数据访问的类和子类中的代码。

【讨论】:

【参考方案3】:

EF 是从关系 SQL 表中创建逻辑对象。通常,您希望将您的物理表与您的对象合理地匹配,但有时它不会那样工作。它促进了持久性无知。

【讨论】:

【参考方案4】:

以下是我的一些想法:

a) ORM 的存在是为了简化和减少开发人员的工作量。在许多设计良好的关系模型中,可以通过高度重复的代码访问数据库(只需更改表名、列名,但行为非常相似)。 ORM 生成开发人员可以立即使用的代码,并根据需要进行调整。开发人员不需要编写 SQL - 现在是 ORM 的工作。它还通过自动调整数据库模式更改来刷新生成的代码。

b) 我不知道。这实际上取决于您的要求和依赖关系。您希望您的 ORM 参与到何种程度?性能有多重要?您希望代码对开发人员有多友好? Entity Framework 倾向于生成更全面的类库作为数据访问层,同时为您提供可视化工具来调整生成的代码。 Linq to SQL 往往更容易散布在不同的方法中。这只是一个例子。

【讨论】:

【参考方案5】:

a) ORM 框架抽象出样板数据层访问代码:您只需处理代码中的对象。

b) 取决于您的情况和要求。

【讨论】:

先生,能不能说的详细一点。 @priyanka.bangalore:只有在您详细说明您的实际要求时才有可能 不,先生,没有这样的项目要求。为了我自己的理解,我只问了:)

以上是关于ADO.NET Entity Framework 的实际好处是啥?的主要内容,如果未能解决你的问题,请参考以下文章

ADO.NET Entity Framework 和 NHibernate - 何时使用其中之一

ADO.NET Entity Framework 的实际好处是啥?

ADO.NET Entity Framework 如何查看T

ADO.NET Entity Framework 和标识列

ado.net entity framework无法更新数据库

带有 ADO.NET Entity Framework 的内部类