2014-01-03 1 views
0

У меня есть следующий JS скрипт, который создает объект продукта:Breeze объект Key не установлен во время создания

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 ' ключ s всегда равен -1 при создании. Попытка локального продукта с помощью id (-1) возвращает пустой результат.

Как создать объект и получить его обратно при необходимости (без предварительного сохранения объекта на сервер)?

ответ

1

Не совсем уверен, что я понимаю вопрос. Но когда вы вызываете EntityManager.createEntity, объект создается и добавляется в кэш EntityManager.

Это означает, что при вызове EntityManager.getEntities вы найдете объект, или при запуске локального кэша запросов с помощью EntityManager.executeQueryLocally или запроса с FetchStrategy из FetchStrategy.FromLocalCache вы также найдете объект ,

Сущность не будет отображаться на сервере до тех пор, пока вы не выполните сохранение, в течение которого локальная сущность изменится с временного ключа на постоянный. Подробнее см. Раздел «Временное создание ключа» на этой странице: http://www.breezejs.com/documentation/extending-entities

+0

О, мой плохой! Я, хотя ключ -1 недействителен, но, по-видимому, он абсолютно прав, пока объект не будет сохранен на сервере! – GETah

Смежные вопросы