1

我正在使用 Breeze 创建动态数据编辑网格。在我向管理器添加新实体、编辑属性、将其保存到 WebAPI 服务并进行本地查询后,我得到了两次相同的实体。一个实体在 entitystate 中服务器生成的键不变,另一个是 primarykey -1 并在 entitystate 中添加。

真的不知道我做错了什么或者不了解 Breeze 背后的机制。

笔记。

我正在使用覆盖了 savechanges 方法的自定义上下文提供程序。我在键映射中返回实体类型、实值(DB 生成的键)、临时值(由 Breeze 分配的键,例如 -1)。

编辑。

我解决了这个问题。我的自定义上下文提供程序中有一个错误。我忘记将生成的键盘映射实际添加到 savechangescore 方法的结果中。

4

2 回答 2

0

首先要检查的是您是否真的使用临时密钥(即-1)保存实体。

如果是这种情况(您显然不想要),那么该 entityType 的元数据中可能没有正确的“AutoGeneratedKeyType”。您可以通过调用 MetadataStore.getEntityType 方法并检查元数据来检查这一点。

如果不是这种情况,请将代码发布到您的自定义上下文提供程序。

于 2013-01-30T20:42:57.610 回答
0

我解决了这个问题,我的自定义上下文提供程序中有一个错误。我忘记将我正在生成的键盘映射实际添加到 savechangescore 方法的结果中。

于 2013-02-03T11:22:41.633 回答