.NET 中 DAL 的强类型数据集的优点和缺点



我目前正在使用一个使用 .Net的强类型数据集。在此之前,我从未与它们合作过,但我发现我强烈厌恶使用它们。与基于 POCO 的 DAL 相比,它们似乎笨重、难以管理,并且生成的对象与特定于数据库的关注点高度耦合(例如,从表和行访问对象、通过键值获取所需数据等——DAL 的全部目的不是将其从逻辑层中抽象出来吗?

已经有一些关于重写和/或重构数据库层部分的讨论。就我个人而言,我希望看到这些数据集被删除,但我很难说服我的一些习惯于使用它们的同事。

使用强类型数据集与基于 POCO 的 DAL 相比有哪些优缺点?我对强类型数据集的厌恶是合理的,还是社区一致认为它们不是问题?我是否缺少其他解决方案?

虽然我也同意使用像NHibernate这样的ORM框架有好处,但我认为这种复杂的库对我的同事来说很难推销。如果有人能为这个方向提供足够令人信服的论据,我想听听。

强类型数据集是执行基于设计器的数据库访问方法的简单方法。它们可以从数据库生成,并且相当容易更新。它们还具有强制实施数据类型的好处。

您可以将它们视为具有数据集、数据表和数据适配器的原始 ADO.NET 以及实体框架之间的过渡阶段。我会尝试使用设计器和数据库第一个代码生成来向同事展示实体框架,作为当前方法的替代品。它应该是一个熟悉的模式,并允许他们更容易过渡。这也应该是改造现有代码所需的最少的额外工作量。

您可以使用该介绍来了解他们的舒适度,然后开始在新项目中介绍 POCO、Linq 和关注点分离。请记住,通常,更改速度越快(和/或工作负载越高),阻力就越大。如果你能以一口大小的形式提出新的方法,并作为概念的安全证明,你会得到更好的接受。变化就是风险,因此管理认知和由于未知因素而可能扩大的工作非常重要。

最新更新