3

Breejsで遊んでいます。コードは次のとおりです。

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); 全て大丈夫。それには、「entityType is null」と表示されます。エンティティ タイプを追加する必要があると思いますが、方法がわかりません。

4

2 に答える 2

3

v 0.81.2以降、サーバーメタデータなしでbreezeを使用し、メモリ内のサーバー側データストアに対して実行されるサンプルがあります。サンプルはToDo-NoEFと呼ばれ、そよ風のサイトからダウンロードして入手できます。

于 2013-01-03T01:53:44.507 に答える
1

AddEntityType メソッドを使用して、EntityType 情報を metadataStore に追加できます。metadataStore には、EntityManager の metadataStore プロパティを介して最も簡単にアクセスできます。

また、サーバー メタデータを使用せずに Breeze を使用したサンプルも、1 週間以内に追加する予定です。しかし、今のところ...

Entity タイプを 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); 
于 2012-12-27T18:28:43.780 に答える