我目前正在使用一个系统,该系统使用 .Net 的强类型数据集继承了 DAL。在此之前我从未与他们合作过,但我发现我对使用它们有强烈的反感。与基于 POCO 的 DAL 相比,它们看起来笨重、难以管理,并且生成的对象与特定于数据库的问题高度耦合(例如,从表和行访问对象、通过键值获取所需数据等——不是DAL 的全部目的是将其从逻辑层中抽象出来吗?)。
已经有一些关于重写和/或重构数据库层部分的讨论。我个人希望看到这些数据集被删除,但我很难说服一些习惯使用它们的同事。
与基于 POCO 的 DAL 相比,使用强类型数据集有哪些优缺点?我对强类型数据集的厌恶是合理的,还是社区一致认为它们不是问题?我还缺少其他解决方案吗?
虽然我也同意使用像 NHibernate 这样的 ORM 框架有好处,但我认为这种复杂的库对我的同事来说是很难接受的。如果有人能为这个方向提供足够有说服力的论据,我很想听听。
最佳答案
强类型数据集是一种基于设计器的数据库访问方法的简单方法。它们可以从数据库中生成,并且很容易更新。它们还具有强制执行数据类型的优势。
您可以将它们视为带有数据集、数据表和数据适配器的原始 ADO.NET 与 Entity Framework 之间的过渡阶段。我会尝试使用设计器和数据库优先代码生成来向您的同事展示 Entity Framework ,以替代当前方法。它应该是一种熟悉的模式,可以让他们更轻松地过渡。它也应该是改造现有代码的最少额外工作量。
您可以使用该介绍来提高他们的舒适度,然后开始在新项目中介绍 POCO、Linq 和关注点分离。请记住,通常情况下,变革的步伐越快(和/或工作量越大),阻力就越大。如果你能以小块的形式展示新的方法论,并作为概念的安全感证明,你会更受欢迎。变化是有风险的,因此管理认知和因未知因素导致的潜在工作扩展很重要。
关于c# - .Net 中 DAL 的强类型数据集的优点和缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11318916/