在事务中仅更新大型业务对象的1个字段的最佳方法是什么?

时间:2010-08-19 05:40:17

标签: c# asp.net architecture business-objects

我处于必须执行交易主详细记录的情况下(删除上层详细信息,插入新详细信息,更新主文件状态

  1. 主业务对象有20个 领域
  2. 详细信息业务对象     仅有4个字段
  3. 现在我必须只更新主表中的1个字段和详细信息表中的4个字段以进行插入。

    如果我初始化一个新的主对象,则会浪费19个字段进行简单更新。我该怎样做才能有效地处理这种情况?

    我可以创建一个新对象并仅从我的主业务对象继承一个字段吗?如果你告诉我DTO或继承的东西,请给我一个小的工作实例。感谢。

2 个答案:

答案 0 :(得分:1)

我猜你的意思是暴露这4个字段,而不是继承它们,因为你不能真正继承字段,只有一个类。

你可以制作一个更小,更简单的'更新对象',但我只会在你的模型中逻辑上存在这个较小的对象时这样做。理想情况下,您实际上不希望创建特殊对象来仅更新业务对象的部分内容。相反,持久层的任务是足够智能,以便知道哪些字段已更改并相应地执行(即仅更新这些字段)。

总结如下:

  • 仅当更新对象也是域模型的逻辑部分时才创建更新对象
  • 信任你的持久层,看看有什么变化。

答案 1 :(得分:0)

使用这4个字段创建DTO。 UI会将此DTO发送到业务层,业务层将使用新值来修改业务对象。比你坚持那个修改过的业务对象。