0

我有以下创建产品对象的 JS 脚本:

var entityQuery = breeze.EntityQuery,
        manager = configureBreezeManager();
function configureBreezeManager() {
    breeze.NamingConvention.camelCase.setAsDefault();
    return new breeze.EntityManager(config.remoteServiceName);;
}
...
var createProduct = function () {
    var product = manager.createEntity('Product', { name: '', description: ''});
    return product;
};

和服务器后端:

public class Product{
    int ProductId{get;set;}
    String Name{get;set;}
    String Description{get;set;}
}

问题是product' 键在创建时始终为 -1。通过 id (-1) 在本地尝试产品会返回一个空结果。

如何创建实体并在需要时将其取回(无需先将实体保存到服务器)?

4

1 回答 1

1

不完全确定我理解这个问题。但是当您调用EntityManager.createEntity时,会创建实体并将其添加到 EntityManager 的缓存中。

这意味着当您调用EntityManager.getEntities时,您会找到实体,或者当您通过EntityManager.executeQueryLocally运行本地缓存查询或使用 FetchStrategy.FromLocalCache 的 FetchStrategy 查询时,您也会找到实体。

该实体不会出现在服务器上,直到您执行保存,此时本地实体的密钥将从临时密钥更改为永久密钥。有关更多信息,请参阅此页面上的“临时密钥生成”主题:http ://www.breezejs.com/documentation/extending-entities

于 2014-01-04T06:24:47.383 回答