0

我是新来的微风。我的数据如下所示:

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

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

4

1 回答 1

1

我假设您没有使用实体框架。

您的模型的 Breeze 原生元数据格式的 Json 如下所示,但有一个警告。 Breeze 1.3.4 尚不支持“爱好”属性(数据属性数组)。 但是,它将在我们下一个支持 NoSQL 数据存储(如 Mongo)的主要版本中得到支持。我没有通过 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 文档包含有关这些的更多信息。

于 2013-05-31T17:52:56.317 回答