我的JayData实体上有inverseProperty:
'User': { 'type': 'RavenDBMembership.User', 'inverseProperty': '$$unbound' },
我真的希望能够使用它,但现在不用如何......
据我所知,'$$ unbound'值应该使用 include 函数加载该属性,然后我应该可以像这样使用它:
entity.User
但相反,它甚至没有将“用户”添加到结构中。当我使用AngularJS打印实体时:
{{entity}}
我使用值获取实体的结构,但是User属性不存在!
那么..任何样本或想法如何在JayData中使用'inverseProperty':'$$ unbound'?
答案 0 :(得分:2)
所以我想出了问题所在。 当实体模型说
时'inverseProperty': '$$unbound'
为了达到这些属性,我们必须说(在我的情况下是用户)
context.EntitySet.include('User').toArray(handler);
所以这里的magic关键字是 include('Property_name')
然后我们就可以到达 entity.User 了。
我的错误是自动认为JayData 包含。
答案 1 :(得分:1)
对不起回答,但我无法评论......
您确定您的元数据实际公开了所有实体吗?
前几天我在GitHub
上偶然发现了这一点 只是一个想法...编辑:
其实我很好奇所以我去看了消息来源。在this file (line 364)中它说:
if (memDef.inverseProperty === '$$unbound') {
//member definition is navigation but not back reference
似乎您的导航属性未设置为引用其父级。
请考虑以下事项:
$data.Entity.extend('Entities.User', {
'IdPerson': { 'key': true, 'type': 'Edm.Guid', 'nullable': false, 'computed': true },
'Login': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 20 },
'Password': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
'Role': { 'type': 'Entities.Role', 'inverseProperty': 'User' }
});
$data.Entity.extend('Entities.Role', {
'IdRole': { 'key': true, 'type': 'Edm.Guid', 'nullable': false, 'computed': true },
'User': { 'type': 'Array', 'elementType': 'Entities.User', 'inverseProperty': 'Role' }
});
这实际上是我的一个工作模型的一部分,我尝试将'$$ unbound'放在反转属性中,然后再现你的错误。
您应确保您的基础数据模型配置了正确的外键和多重性。这实际上是'inverseProperty'用于什么。