首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >微风:追踪新物体上的变化

微风:追踪新物体上的变化
EN

Stack Overflow用户
提问于 2014-04-28 22:08:28
回答 2查看 215关注 0票数 0

我能够创建一个实体对象,设置一些默认值并将其添加到管理器中。现在,我希望使用manager.hasChanges()跟踪对它的更改。由于某些原因,这总是返回true。在跟踪数据库中新创建的实体时,我是否也应该检查其他内容呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-28 23:10:16

一旦您将它“添加”到EntityManager中,根据定义,它就会发生更改,因为它处于“添加”状态。“hasChanges”意味着需要保存它,因为它与持久性服务提供的内容“不同”(在本例中,实体尚未被“保存”)。

您可以做的是在“未更改”状态下将实体“附加”到EntityManager。

代码语言:javascript
运行
复制
myEntityManager.attachEntity(newEntity, breeze.EntityState.Unchanged);

在这种情况下,你所做的任何改变都会以你想要的方式工作,但是.

微风现在将考虑您新附加的实体已经持久化,如果您试图保存它,那么保存将失败,因为微风将尝试‘修改’持久化实体,而不是创建一个新的实体。

如果你真的想完成你的请求,你将需要使用‘附加’,但也需要跟踪这些实体,并标记他们‘添加’,然后你试图保存他们。

票数 1
EN

Stack Overflow用户

发布于 2014-04-28 23:08:22

EntityManager将具有EntityState.Added的实体视为“更改”实体。这就是为什么HasChanges总是返回true的原因。

在这种情况下,您应该侦听EntityManager.entityChanged事件来跟踪更改。

请参阅entityChanged

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23352017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档