玩breezejs。这是一个代码:
var dataService = new breeze.DataService({
serviceName: "/api/articles",
hasServerMetadata: false
});
var ms = new breeze.MetadataStore();
var manager = new breeze.EntityManager({
dataService: dataService,
metadataStore: ms
});
var query = new breeze.EntityQuery().from("Query");
manager.executeQuery(query).then(function (data) {
// this fails
var articles = manager.executeQueryLocally(query);
console.log(articles);
}).fail(function(e) {
alert(e);
});
没有行 var articles = manager.executeQueryLocally(query); 一切正常。有了它,它说“entityType为null”。我想我需要添加实体类型但不确定如何?
答案 0 :(得分:3)
从v 0.81.2开始,现在有一个使用breeze而没有服务器元数据的示例,针对内存服务器端数据存储区运行。该样本称为ToDo-NoEF,可从微风网站下载。
答案 1 :(得分:1)
可以通过AddEntityType方法将EntityType信息添加到metadataStore。可以通过EntityManager的metadataStore属性轻松访问metadataStore。
我们还将在下周左右使用breeze添加一个没有服务器元数据的示例。但是现在......
以下是将实体类型添加到metadataStore的简单示例。这只是一个部分示例,因为还需要添加其他相关类型来完成它。
var et = new EntityType({
shortName: "Person",
namespace: "Sample_WebApi.Models"
});
et.addProperty( new DataProperty({
name: "personId",
dataType: DataType.Int32,
isNullable: false,
isPartOfKey: true,
}));
et.addProperty(new DataProperty({
name: "firstName",
dataType: DataType.String,
isNullable: false,
}));
et.addProperty(new DataProperty({
name: "lastName",
dataType: DataType.String,
isNullable: false,
}));
et.addProperty(new DataProperty({
name: "birthDate",
dataType: DataType.DateTime,
isNullable: true
}));
et.addProperty(new NavigationProperty({
name: "meals",
entityTypeName: "Meal",
isScalar: false,
associationName: "personMeals"
}));
metadataStore.addEntityType(et);