没有服务器元数据的Breezejs



与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是无效的"。我想我需要添加实体类型,但不确定如何?

从v 0.81.2开始,现在使用Breeze没有服务器元数据的示例,与内存中服务器端数据存储相对。该示例称为todo-noef,可通过从微风站点下载。

entityType信息可以通过AddentityType方法添加到Metadatastore中。通过EntityManager的Metadatastore属性最容易访问元数据。

我们还将在接下来的一周左右的时间内使用Breeze添加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); 

最新更新