.Net中强类型数据集在DAL中的优缺点

3
我目前正在使用一个继承了.Net强类型数据集的系统。在这之前,我从未使用过它们,但我发现我强烈反感使用它们。与基于POCO的数据访问层相比,它们似乎笨重、难以管理,并且生成的对象与特定于数据库的问题高度耦合(例如,从表和行中访问对象,通过关键值获取所需数据等——数据访问层的整个目的不就是将此抽象出来,避免逻辑层受到影响吗?)。
已经讨论了重新编写和/或重构部分数据库层的问题。个人而言,我希望看到这些数据集被删除,但我很难说服一些习惯于使用它们的同事。
使用强类型数据集与基于POCO的数据访问层有哪些优缺点?我的反感对强类型数据集是否有正当理由,或者社区共识认为它们并没有问题?我是否错过了其他解决方案?
虽然我也同意使用像NHibernate这样的ORM框架有其益处,但我认为这样复杂的库会给我的同事们带来难题。如果有人能提供足够有力的理由支持这个方向,我很愿意听取。
1个回答

2
强类型数据集是一种基于设计的数据库访问方法,可以从数据库生成并且更新起来相对简单。它们还有一个好处就是强制执行数据类型。你可以将它们看作是原始 ADO.NET 中 DataSets、DataTables 和 DataAdapters 与 Entity Framework 之间的过渡阶段。建议向同事们介绍使用设计师和数据库代码生成的 Entity Framework 作为当前方法的替代方案。这应该是一个熟悉的模式,并且使他们更容易过渡。这也应该是改装现有代码所需额外工作量最小的方法。你可以利用这个介绍来提高他们的舒适度,然后在新项目中开始介绍 POCO、Linq 和关注点分离。记住,通常情况下,变化的速度越快(或者工作量越大),抵抗力就越大。如果你能够将新的方法论以安全感十足的概念证明的形式呈现出来,并分成小块逐步介绍,那么你会得到更好的接受。变革是有风险的,因此重要的是管理好感知和由未知因素导致的潜在工作扩展。

我认为这是一个总体考虑周到的回应。它同时考虑了技术和社交方面。我已经提出EF作为一种选择,我的同事们似乎愿意考虑它。 - Jeffrey P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接