我有以下用于创建产品对象的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)在本地生产产品将返回空结果。
如何创建实体并在需要时能够将其取回(无需先将实体保存到服务器)?
不能完全确定我理解这个问题。但是,当您调用EntityManager.createEntity时,将创建实体并将其添加到EntityManager的缓存中。
这意味着,当您调用EntityManager.getEntities时,您将找到实体,或者通过EntityManager.executeQueryLocally运行本地缓存查询或使用FetchStrategy.FromLocalCache的FetchStrategy查询时,也会找到实体。
除非您执行保存,否则该实体将不会出现在服务器上,此时本地实体的名称将从临时密钥更改为永久密钥。有关更多信息,请参见此页面上的“临时密钥生成”主题:http : //www.breezejs.com/documentation/extending-entities
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句