【问题标题】:Breezejs without server metadata没有服务器元数据的 Breezejs
【发布时间】:2013-01-03 09:53:44
【问题描述】:

玩转微风。这是一个代码:

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 article = manager.executeQueryLocally(query); 一切正常。它说“实体类型为空”。我想我需要添加实体类型但不确定如何添加?

【问题讨论】:

    标签: breeze


    【解决方案1】:

    从 v 0.81.2 开始,现在有一个使用没有服务器元数据的微风的示例,针对内存中的服务器端数据存储运行。该示例名为 ToDo-NoEF,可从微风网站下载。

    【讨论】:

      【解决方案2】:

      EntityType 信息可以通过 AddEntityType 方法添加到 metadataStore。 metadataStore 最容易通过 EntityManager 的 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); 
      

      【讨论】:

      • 我对此进行了测试,但没有成功。我会等你在那里提到的例子。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      相关资源
      最近更新 更多