Я пытаюсь реализовать фиктивный сервис данных. Я регистрирую новый тип данных, создаю новый объект с данными инициализации, но при выполнении запроса получаю сообщение об ошибке: «Для этого запроса нет доступных метаданных». Я не могу понять, почему это происходит. Мой менеджер сущностей содержит тип данных, который я зарегистрировал, а также набор созданных сущностей. Я думал, что мой запрос не работает из-за пространства имен, поэтому я попытался запросить "Tag:#Football.Models" - тот же результат. Также я пробовал метод executeLocally(), то же самое...
Шаги:
1) Создать бриз dataservice, хранилище данных и менеджер.
2) Создайте новый тип метаданных и добавьте его в хранилище данных.
3) Создайте новый объект зарегистрированного типа и инициализируйте его некоторыми фиктивными данными.
4) Выполнить запрос для получения коллекции сущностей; Сбой на шаге 4 — возникает ошибка: «Ошибка: нет доступных метаданных для этого запроса».
Вот мой код:
//1st step
var mockDataService = new breeze.DataService({
serviceName: "mockDataService",
hasServerMetadata: false
});
var mockMetadataStore = new breeze.MetadataStore(
{
namingConvention: breeze.NamingConvention.camelCase
});
var queryOptions = new breeze.QueryOptions({
fetchStrategy: breeze.FetchStrategy.FromLocalCache
});
var entityManager = new breeze.EntityManager({
dataService: mockDataService,
metadataStore: mockMetadataStore,
queryOptions: queryOptions
});
// 2nd step
var et = new breeze.EntityType({
shortName: "Tag",
namespace: "Football.Models",
autoGeneratedKeyType: breeze.AutoGeneratedKeyType.Identity,
defaultResourceName: "tags"
});
et.addProperty(new breeze.DataProperty({
name: "id",
dataType: breeze.DataType.Int32,
isNullable: false,
isPartOfKey: true
}));
et.addProperty(new breeze.DataProperty({
name: "name",
dataType: breeze.DataType.String,
isNullable: false
}));
mockMetadataStore.addEntityType(et);
mockMetadataStore.registerEntityTypeCtor("Tag", null);
//3rd step
etType = mockMetadataStore.getEntityType("Tag");
var newTag = etType.createEntity({id:1,name:"tag"});
entityManager.addEntity(newTag);
// 4th step
var a = breeze.EntityQuery
.from("Tag")
.using(entityManager).execute()
.then(querySucceed).fail( function(err) {
alert(err);
// and i got an error:
// Error: There is no metadata available for this query
});;