2012-12-24 34 views
3

玩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); 
       }); 

无线变种物品= manager.executeQueryLocally(查询);一切都很好。它说它“entityType为null”。我想我需要添加实体类型,但不知道如何?

回答

3

为v 0.81.2的,现在使用无微风服务器的元数据的样本,针对在内存中的服务器端数据存储上运行。该示例被称为ToDo-NoEF,可通过微风网站下载。

1

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

我测试了这个,但没有成功。我会等你在那里提到你的例子。谢谢。 –