Я использовал CreateEntity от breeze несколько раз, когда PK таблицы является введенным пользователем значением. И несколько раз с SQL SERVER, когда PK - ИДЕНТИЧНОСТЬ. Это мой первый раз, когда я пытаюсь сделать это, когда PK - это автоматически сгенерированный идентификатор (на самом деле «последовательность») в ORACLE. Это не работает.
Сначала я проверяю, что я выбрал метаданные, затем создаю новую пустую сущность, которая будет заполнена значениями пользователем.
Мой код для createEntity (newEntity является нокаутируемой наблюдаемой):
function createEntity(newEntity) {
newEntity(manager.createEntity(entityNames.escctransactions, {})); <<<<< this fails
return;
}
Ошибка:
Невозможно присоединить объект типа (ESCC_TRANSACTIONS: ...) к EntityManager без предварительной установки его ключа или установки его свойства entityType 'AutoGeneratedKeyType' в значение, отличное от 'None'
Я знаю, что должен установить для AutoGeneratedKeyType значение «Identity», но не уверен, как это сделать. Попробовал это, когда я инициализирую метаданные, но все еще получаю ту же ошибку, поэтому она явно не работает:
var entyType = manager.metadataStore.getEntityType("ESCC_TRANSACTIONS");
entyType.setProperties({ AutoGeneratedKeyType: AutoGeneratedKeyType.Identity });
Я видел кое-что о том, как сделать это в конструкторе, но я никогда не использовал конструктор в JavaScript. Также что-то об изменении его в конфиге?
Использование Breeze 1.6, Knockout.js 3.4, .NET 4.5.2 framework
СПАСИБО