3

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

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

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

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

4

1 回答 1

2

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

您可以将它们视为具有 DataSet、DataTables 和 DataAdapter 的原始 ADO.NET 与实体框架之间的过渡阶段。我会尝试向您的同事展示使用设计器和数据库优先代码生成的实体框架,以替代当前方法。这应该是一种熟悉的模式,可以让他们更轻松地过渡。改造现有代码的额外工作量也应该是最少的。

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

于 2012-07-03T21:05:49.797 回答