数据集应该位于n层(多层)架构中的哪个位置?

Igo*_*aya 4 .net architecture dataset n-tier-architecture

如果数据集应该进入数据或业务层,我们目前正在讨论这个问题吗?

我的朋友认为所有ADO.NET组件都应该进入数据层.对我来说,这似乎不符合以下原因:

  • 如果您创建一个胖数据层客户端,例如将所有内容迁移到不同的数据源将会困难得多.
  • 除非跳过业务层逻辑,否则无法绑定控件.

我认为数据集和数据表应该在业务逻辑中,因为它们对所有数据提供者都是通用的.数据层应该有一个Provider Factory,用于实例化正确的提供者的对象(Connection,DataAdapters,Transactions,DataReaders等).对我而言,这是出于以下原因:

  • 迁移到不同的数据层非常简单.
  • 您可以将控件绑定到丰富的业务对象

一些n层大师可以帮我们清除哪条路?提前致谢

Joh*_*ers 5

在我看来,根本不要使用DataSet.甚至不使用类型化的DataSet.这些是在LINQ之前创建的旧构造.跳过古代历史,进入现在时:使用LINQ to Entities和Entity Framework(EF).两者密切相关但不尽相同.

不要在服务边界上公开EF实体.不幸的是,Microsoft在序列化实体时选择公开实现细节.除此之外,使用EF并享受比使用DataSet更多的乐趣.