我是新手。我的数据如下:
{
id: 1,
name: 'Robert',
hobbies: ['Skiing', 'Surfing'],
address: {
street: 'Sample Street',
city: 'Sampleville',
country: 'Belgium'
}
}
如何以编程方式在元数据存储中创建此结构?
答案 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文档包含有关这些的更多信息。