2

我的 JayData 实体上有 inverseProperty:

'User': { 'type': 'RavenDBMembership.User', 'inverseProperty': '$$unbound' },

我真的很想能够使用它,但现在不要如何..

据我了解,'$$unbound' 值应该使用包含函数加载属性,然后我应该能够像这样简单地使用它:

entity.User

但相反,它甚至没有将“用户”添加到结构中。当我像这样使用 AngularJS 打印实体时:

{{entity}}

我得到了实体的结构值,但用户属性不存在!

所以.. 任何示例或想法如何在 JayData 中使用 'inverseProperty': '$$unbound'?

4

2 回答 2

2

所以我想出了问题所在。当实体模型说

'inverseProperty': '$$unbound'

为了达到这些属性,我们不得不说(在我的例子中是用户)

context.EntitySet.include('User').toArray(handler);

所以这里的神奇关键字是include('Property_name')

然后我们可以到达entity.User 的东西。

我的错误是认为 JayData 会自动包含在内

于 2013-10-13T22:22:48.993 回答
1

很抱歉回答,但我无法评论...

您确定您的元数据实际上公开了所有实体吗?

前几天我在GitHub 上偶然发现了这个

只是一个想法...

编辑:

其实我很好奇,所以我去看了来源。在这个文件(第 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' 的用途。

于 2013-10-12T20:28:20.650 回答