Entity Framework を使用していないと仮定しています。
モデルの Breeze ネイティブ メタデータ フォーマットの Json を以下に示しますが、注意点が 1 つあります。 「趣味」プロパティ (データ プロパティの配列) は、Breeze 1.3.4 ではまだサポートされていません。 ただし、Mongo などの NoSQL データストアをサポートする次のメジャー リリースでサポートされる予定です。json パーサーを介してこれを実行しなかったため、軽微な構文エラーが発生する可能性がありますが、これで正しい考えが得られるはずです。
var jsonMetadata = {
"metadataVersion":"1.0.4",
"dataServices":[ {
"serviceName":"api/Foo/",
"hasServerMetadata":true,
"jsonResultsAdapter":"webApi_default",
"useJsonp":false
} ],
"structuralTypes":[ {
"shortName":"person",
"namespace":"YourNamespace",
"dataProperties":[
{ "name":"id", "dataType":"Int32" },
{ "name":"name", "dataType":"String" },
{ "name: "hobbies", "dataType: "String", isScalar: false },
{ "name":"address", "complexTypeName":"address:#YourNamespace" }
] }, {
"shortName":"address",
"namespace":"YourNamespace",
"isComplexType":true,
"dataProperties":[
{ "name":"street", "dataType":"String" },
{ "name":"city", "dataType":"String" },
{ "name: "country", "dataType: "String" }
} ]
}
次のような方法でこれを呼び出します
myEntityManager.metadataStore.importMetadata(jsonMetadata);
プロパティが null 可能であるかどうか、文字列プロパティの maxLength (存在する場合)、およびその他のいくつかの項目など、検証用のメタデータを意図的に除外 (既定値を使用) しました。Breeze のドキュメントには、これらに関する詳細情報が含まれています。