我有一个看起来像这样的JSON:
{
username: 'johnDoe',
password: 'mypassword'
answers: [
{
field: '1',
value: 'field1 value'
},
{
field: '2',
value: 'field2 value'
}
]
}
我试图为它创建一个实体。我已经使用了这个实体:
function addUser() {
addType({
name: 'User',
dataProperties: {
"id": {nullOk: true, isPartOfKey: true},
username: {max: 255, nullOk: true},
password: {max: 255, nullOk: false}
},
navigationProperties: {
answers: {
entityTypeName: 'Answer',
hasMany: true
}
}
});
}
function addAnswer() {
addType({
name: 'Answer',
dataProperties: {
field: {type: INT, isPartOfKey: true},
value: {max: 255, nullOk: true}
}
});
}
问题是,每当我执行manager.saveChanges()
微风从json剥离answers
数组时,只有用户名和密码才会传递给我的POST请求..为什么会这样?我想传递整个对象,包括答案数组。我应该改变什么价值才能通过?
答案 0 :(得分:0)
您有几个建模问题:
User
Answer
与User
Answer
实际上不是EntityType
实体必须具有唯一值的不可为空的密钥。
User
类型的真正非可空键是什么?它不能是id
,因为JSON中没有“id”数据。 userName
如何可以为空?password
不可为空?
正如@SteveSchmitt所观察到的,您在Answer
中看不到User.answers
个实例,因为没有外键(例如userId
与Answer
相关联User
1}}。
虽然Answer
实体类型确实有一个不可为空的密钥field
,但这是一个奇怪的密钥名称。它在所有Answer
个实例中是唯一的,还是仅在给定Answer
中的User
个对象中唯一?
我怀疑Answer
实际上不是实体类型。我还怀疑Answer
数据实际上位于User
数据中,并且不存储在单独的数据库结构中。如果我没错,您可能希望将Answer
建模为Complex Type
,将User.answers
建模为此类型的数组。
回到我的问题的一些答案,我们将看到这导致我们。
感谢您试一试Breeze。