代码之家  ›  专栏  ›  技术社区  ›  Zo Has

将业务对象标记为脏的?

  •  4
  • Zo Has  · 技术社区  · 14 年前

    1. 如何在单击行时获取当前业务对象并更改其属性?
    2. 另外,在多用户环境中,这种情况会怎样呢?
    2 回复  |  直到 14 年前
        1
  •  5
  •   NakedBrunch    14 年前

    这实际上是一个关于并发性的问题:如何让多个用户修改相同的业务对象,并确信他们的每一次编辑都会成功保存。

    如果要将对象存储在缓存中,则可以创建部分对象以包含“IsDirty”布尔属性。选中某个项时,将相关对象的IsDirty属性设置为true。

    处理并发的方法有很多种,您可以尝试的一种方法是在检查项时检查IsDirty属性。如果属性为false,则将属性设置为true。如果属性已经为true,则向用户发回一个错误。保存对象后,将IsDirty属性重置回false。

    当您尝试更复杂地使用为保存对象而创建的规则时,事情会变得越来越复杂。

        2
  •  0
  •   VinayC    14 年前

    您可以将列表存储在视图状态/会话状态/缓存中,或者在post时从数据库中重新获取,然后可以基于索引标记业务对象。就我个人而言,我将选择通过一个包装器方法来获取业务对象列表,该方法将在缓存中查找它,如果不在缓存中,则从数据库中获取它—这将允许有较小的缓存过期时间。

    在多用户场景中,这将取决于您如何管理并发性。看到这个了吗 article