我理解创建一个业务对象或实体来代表像Person这样的东西的概念。然后我可以使用DTO序列化Person并将其发送到客户端。如果客户端更改了该对象,则可以在其中添加IsDirty标志,因此当它被发送回服务器时,我知道要更新它。
但是,如果我有一个Order对象呢?它具有主要的头信息,如客户、供应商、所需日期等。然后它有OrderItems,这是一个List < OrderItem >,表示要订购的商品。我想能够在我的UI中使用这个业务对象。因此,我将一些文本框连接到位置、供应商、所需日期等,并将一个网格连接到OrderItems。由于OrderItems是一个列表,我可以很容易地向其中添加和删除记录。但是,我如何跟踪这些,特别是已删除的项目。我不希望在我的网格中看到已删除的项目,并且如果我使用foreach迭代,我也不应该能够对它们进行迭代,因为它们已经被删除了。但我仍然需要跟踪有一个删除的事实。我该如何跟踪这些变化?我认为我需要使用工作单元?但是,代码似乎变得相当复杂。那么我想为什么不直接使用DataTable,获得免费的更改跟踪呢?但是后来我读到了业务对象是正确的方法。
我已经找到了一些关于简单Person示例的示例,但没有关于类似Orders的头-细节示例。
顺便说一下,我正在使用C# 3.5。
但是,如果我有一个Order对象呢?它具有主要的头信息,如客户、供应商、所需日期等。然后它有OrderItems,这是一个List < OrderItem >,表示要订购的商品。我想能够在我的UI中使用这个业务对象。因此,我将一些文本框连接到位置、供应商、所需日期等,并将一个网格连接到OrderItems。由于OrderItems是一个列表,我可以很容易地向其中添加和删除记录。但是,我如何跟踪这些,特别是已删除的项目。我不希望在我的网格中看到已删除的项目,并且如果我使用foreach迭代,我也不应该能够对它们进行迭代,因为它们已经被删除了。但我仍然需要跟踪有一个删除的事实。我该如何跟踪这些变化?我认为我需要使用工作单元?但是,代码似乎变得相当复杂。那么我想为什么不直接使用DataTable,获得免费的更改跟踪呢?但是后来我读到了业务对象是正确的方法。
我已经找到了一些关于简单Person示例的示例,但没有关于类似Orders的头-细节示例。
顺便说一下,我正在使用C# 3.5。