.net - 数据集应该驻留在 n 层(多层)架构中的什么位置?

标签 .net architecture dataset n-tier-architecture

我们目前正在讨论数据集应该放在数据层还是业务层?
我的 friend 认为所有 ADO.NET 组件都应该放在数据层中。对我来说,这似乎不正确,原因如下:

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

  • 我认为数据集和数据表应该在业务逻辑中,因为它们对所有数据提供者都是通用的。数据层应该有一个提供者工厂来实例化正确的提供者的对象(连接、数据适配器、事务、数据读取器等)。对我来说,这是要走的路,原因如下:
  • 迁移到不同的数据层非常简单。
  • 您可以将控件绑定(bind)到丰富的业务对象

  • 有没有n级的大师能帮我们弄清楚该走哪条路?

    最佳答案

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

    不要跨服务边界公开 EF 实体。不幸的是,微软选择在序列化实体时公开实现细节。除此之外,使用 EF 并获得比使用 DataSet 更多的乐趣。

    关于.net - 数据集应该驻留在 n 层(多层)架构中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837697/

    相关文章:

    awk - 使用 AWK 整理文件

    C# Outlook 插件 - 上下文菜单处理

    .net - 始终保持多个数据库同步

    C#,转义双引号不能按预期工作

    c# - 英语自然句的算法

    asp.net-mvc - ASP.NET MVC 和面向服务的架构

    scala - 将任意数量的列转换为 Vector

    html - 全局 CSS 辅助类是个好主意吗?

    .net - 线程与线程池

    web-services - 使用 NHibernate 通过 Web 服务保存数据?