2012-12-24 27 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

我測試了這個,但沒有成功。我會等你在那裏提到你的例子。謝謝。 –

相關問題