gpt4 book ai didi

entity-framework - 正确使用 ORM( Entity Framework )的哲学

转载 作者:行者123 更新时间:2023-12-04 06:48:21 28 4
gpt4 key购买 nike

我是一个老派的数据库程序员。我一生都在通过 DAL 和存储过程使用数据库。现在我需要使用 Entity Framework 。

你能告诉我你的经验和架构最佳实践如何使用它吗?

据我所知,ORM 是为不懂 SQL 表达式的程序员设计的。而这只是 ORM 的好处。我对吗 ?

我有架构文档,但我不清楚我应该用 ORM 做什么。我认为我的步骤应该是:
1) 创建完整的数据库
2)在模型中创建高级实体,例如“价格”,它实际上由几个数据库表组成
3) 在实体上映射数据库表。

最佳答案

ORM 不仅仅允许非 SQL 程序员与数据库对话!

ORM 不必处理大量手写的 DAL 代码并取回数据的行/列表示,而是将表的每一行转换为强类型对象。

所以你最终得到例如Customer ,并且您可以将其电话号码作为强类型属性访问:

string customerPhone = MyCustomer.PhoneNumber;

这比:
string customerPhone = MyCustomerTable.Rows[5].Column["PhoneNumber"].ToString();

在完成这项工作时,您不会从 IDE 获得任何支持 - 请注意列名输入错误!直到运行时您才会发现 - 要么没有返回数据,要么出现异常.... 不是很愉快。

首先,使用 Customer 要容易得多。您返回的对象,属性很好地可用,强类型,并且可以在 Intellisense 中发现,等等。

因此,除了可能使您不必手工编写大量枯燥的 SQL 和 DAL 代码之外,ORM 还为使用数据库中的数据带来了很多好处 - 在您的代码编辑器中的可发现性、类型安全性等等。

我同意 - ORM 动态生成 SQL 语句并执行这些语句的想法可能很可怕。但至少在 Entity Framework v4 (.NET 4) 中,微软在优化所使用的 SQL 方面做得非常出色。在 100% 的情况下它可能并不完美,但在很大一部分情况下,它比任何非专业 SQL 程序员编写的任何 SQL 都要好得多......

另外:在 EF4 中,如果您真的想要并看到需要,您始终可以定义和使用您自己的存储过程,用于对任何实体进行插入、更新、删除。

关于entity-framework - 正确使用 ORM( Entity Framework )的哲学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3474146/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com