2013-10-10 37 views
2

我有inverseProperty我JayData實體:JayData inverseProperty

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

我真的很希望能夠使用它,但現在怎麼不..

雖然我明白了,與包括功能「$$綁定值應加載屬性,然後我應該能夠簡單地使用這樣的:

entity.User 

但是,相反,它甚至沒有添加'用戶'的結構。當我用AngularJS這樣打印實體時:

{{entity}} 

我得到了帶有值的實體結構,但用戶屬性不在那裏!

所以..任何樣品或想法如何使用'inverseProperty':'$$ unbound'in JayData?

回答

2

所以我想清楚是什麼問題。 當實體模型認爲

'inverseProperty': '$$unbound' 

爲了實現這些特性,我們不得不說(對我來說用戶)

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

那麼神奇的關鍵字這裏是包括(「PROPERTY_NAME」)

然後我們可以達到entity.User thingy。

我的錯誤是認爲JayData 自動包含

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' } 
    }); 

其實這是我的工作模式的一個組成部分,我在逆財產試圖把「$$綁定」,它複製你的bug。

您應該確保您的基礎數據模型具有正確的外鍵和多重配置。這實際上是'inverseProperty'用於的。

+1

是的,它發生在元數據不正確之前 –