有没有一种简单的方法可以将缓存中的实体标记为“已添加”?

时间:2013-06-28 16:35:49

标签: breeze

我想将从服务器发送的实体设置为“已添加”。它看起来像entityaspect有方法setdeleted,setmodified等...但我似乎找不到一个名为setadded ...什么是设置实体“添加”最干净的方法?我想也许我需要分离然后附加为“添加”。我有一个名为“newdeal”的服务器方法,它创建一个准备好进行数据输入的新实体...这个方法有业务逻辑,我宁愿保留在服务器上......当它到达客户端时,实体被标记为“未经修改的“这是有道理的...但我想将其改为”添加“......

谢谢

2 个答案:

答案 0 :(得分:1)

@giancarloa,我假设,当实体从服务器发送到客户端时,它一直存在于数据库中。如果是这种情况,将其entityState设置为Added是没有意义的,因为它会导致重复错误。如果这不是它的工作原理,请详细解释你正在做什么,因为我想知道你正在采取的所有步骤。

我也很困惑为什么在服务器中创建一个实体,将其发送到客户端,更新它,然后将其发送回服务器以将其保存在数据库中 - 这似乎会导致更多流量和可能会降低性能。此外,用户决定不保存什么? - 然后服务器中的工作就会浪费掉。

为什么不在客户端创建实体,如果结果是保存,那么业务逻辑会在beforeSaveEntity / beforeSaveEntities期间启动服务器?

答案 1 :(得分:0)

我有类似的问题。微风期望从服务器返回的实体已存在于您的数据库中。如果您的服务器从其他某些来源(而不是数据库)获取实体,将它们返回给客户端,然后用户可以决定是否真的应该将这些实体插入数据库中,那么情况就不是这样了。

正如您所指出的,您必须做的是跳过将实体添加到客户端实体管理器中的代码。稍后,您可以将分离的实体添加到Entitymanager。

有关详细信息,请参阅以下答案。 https://stackoverflow.com/a/18596070/174638