在UI层而不是实体中使用DataTable

时间:2013-02-06 11:49:35

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

我的基本3层应用程序包含一个与我的BLL对话并且BLL与UI交互的DAL。

到目前为止,我正在使用旧式的方式使用datareaders和update / insert命令构建DAL。这很有效,因为我的大部分需要在哪里阅读。

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

现在我的UI中有一个List<InventoryItem>,无论什么时候我需要将此列表发送给BLL-&gt; DAL进行更改。

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

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

1 个答案:

答案 0 :(得分:1)

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

这将简单地破坏抽象。

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