【问题标题】:Using DataTable in UI layer instead of entities在 UI 层使用 DataTable 而不是实体
【发布时间】:2013-01-21 14:37:39
【问题描述】:

我的基本 3 层应用程序由一个 DAL 组成,它与我的 BLL 对话,BLL 与 UI 交互。

到目前为止,我一直在使用老式的方式来构建带有数据读取器和更新/插入命令的 DAL。这很有效,因为我的大部分需要在哪里阅读。

现在我需要越来越多的东西来更新数据库信息并检查一些基本的并发性。我正在考虑使用数据表来使我的 UI 在编辑和持久化数据库表中的数据时更加灵活。

现在我的 UI 中有一个 List<InventoryItem>,每当我需要时,我都会将此列表发送到 BLL->DAL 以进行更改。

在我看来,我认为我必须让我的 BLL 将数据表返回给 UI,以使我的 UI 更容易响应更新?

我的主要问题是如何将 3 层逻辑(UI-BLL-DAL)与 DataAdapter/DataSets/DataTables 模型的优点进行逻辑绑定...

【问题讨论】:

    标签: c# ado.net datatable data-access-layer


    【解决方案1】:

    起初这似乎是正确的,但这样做只会破坏分层架构。通过将类型化数据集 (datatable) 携带到 UI,您只需启用 UI 即可直接使用 CRUD 操作。那么就不需要使用其他层了。

    这只会破坏抽象。

    使用 N 层架构是一种选择,是否使用它取决于您的要求。也许,首先你需要决定你是否真的需要它;除非你能想出一个正确的推理,否则你不需要使用它。

    【讨论】:

    • 我明白了。看我需要分层的方法。我可能有简单的应用程序,但它们有很多解决不同的域问题。所以我想要一个可靠的 DAL 和 BLL 并相应地应用我的 UI 需求(表单、WPF、WCF 等)。据我了解,如果我需要域方法/分层,我应该使用数据阅读器等传统方式。还是切换到 ORM?
    • 恕我直言,切换到 ORM 可能会有所帮助,具体取决于项目的大小和要求,而不是使用数据读取器方法。
    • 这次尺寸不大。一张表读/写并从 5-6 张表中读取以获取要写入的正确数据....只是想探索有关方法的情况。我在想它要么是数据读取器,要么是 ORM...
    • 那么数据库中的表总数限制为最多6个?
    • 是的,一个在 SQl Server 中,另一个在 AS400 DB2 中,用于为 sql server 表选择值和准备数据
    猜你喜欢
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多