gpt4 book ai didi

.net - 为什么不在大型项目中使用 EF 生成的类?

转载 作者:行者123 更新时间:2023-12-01 16:15:37 24 4
gpt4 key购买 nike

我将在某种大型项目中使用 Entity Framework 4。

而且我知道许多专业程序员建议依赖我的业务类而不是 EF 模型类。

实际上,我的大脑中有声音告诉我“不要依赖生成的类!。只要用你的东西弄脏你的手,不要让别人为你做这件事。!!”

但实际上我不知道在这么大的“企业”项目中使用这些生成的类的问题出在哪里。

所以请让我明白为什么???

最佳答案

使用 EF 生成的类绝对没有任何问题。这就是他们存在的目的。

但是如果你错误地应用了这项技术,你就会遇到很多问题。例如,许多初学者会尝试使用这些 EF 生成的类来完成所有事情。他们将获取这些类,使用 WCF 或远程处理将它们编码到 AppDomain 边界,也许他们会在前端绑定(bind)到它们。这可能适用于快速而肮脏的基于 CRUD 的应用程序,但它不适用于任何实际大小的任何应用程序。

为什么不呢?因为 EF 生成的类是在应用程序的数据“域”中建模的,而不是在表示“域”中建模的。用户可能想要交互的通常不是与数据库中的表 1:1 对应的对象。例如,用户可能有一个“产品”网格。该网格内包含产品的总销售金额,以及有关该产品的某些指示性数据。虽然指示性数据(名称、大小等)可能会直接来自 Product 表,因此会从 EF 生成的 Product 类,但聚合数据(销售总额)是一个聚合值。

我们通常做的是在我们的服务中使用 EF 生成的类,然后使用该服务将 EF 类转换为 ViewModel,然后使用 WPF(或任何您喜欢的技术)将其绑定(bind)到我们的前端。这使我们能够分离我们正在寻找的关注点。

关于.net - 为什么不在大型项目中使用 EF 生成的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3124334/

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