Breeze.js - 在元数据库中以编程方式创建复杂文档的示例

时间:2013-05-31 14:37:07

标签: breeze

我是新手。我的数据如下:

{
    id: 1,
    name: 'Robert',
    hobbies: ['Skiing', 'Surfing'],
    address: {
        street: 'Sample Street',
        city: 'Sampleville',
        country: 'Belgium'
    }
}

如何以编程方式在元数据存储中创建此结构?

1 个答案:

答案 0 :(得分:1)

我假设你使用Entity Framework。

您的模型的Breeze原生元数据格式的Json如下所示,但有一点需要注意。 Breeze 1.3.4中不支持'hobbies'属性(数组属性数组)。但是,我们下一个支持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);

我故意遗漏(采用默认值)元数据进行验证,属性是否可以为空,字符串属性的maxLength(如果有)和其他几个项目。 Breeze文档包含有关这些的更多信息。