我在做使用durandaljs和breezejs的應用程序。我正在嘗試獲取導航屬性的值。我的問題是,當我tryied打電話給在微風這個方法:按需加載相關實體(entityAspect.loadNavigationProperty())
user.entityAspect.loadNavigationProperty("userType");
我得到的錯誤「」在「propertyOrExpr」參數必須是「字符串」「」。此錯誤是拋出的代碼後續部分:
var q = new EntityQuery(navProperty.entityType.defaultResourceName);
var pred = buildNavigationPredicate(entity, navProperty);
q = q.where(pred);
的問題是,「預解碼」是空的,因爲「buildNavigationPredicate」返回NULL。漸入「buildNavigationPredicate」:
if (navigationProperty.foreignKeyNames.length === 0) return null;
的問題是,「foreignKeyNames」數組爲空,所有在「navigationProperty」其餘領域都充滿,但我不知道爲什麼,但我沒有按服務器不發送這些信息。 (也是foreignKeyNamesServer是空的)。
有人有同樣的問題嗎?可以是微風的錯誤?
謝謝。
直到EF讓你補充它的慣例,我纔沒有別的選擇。人類在心智上抹去'UserType_Id'中的下劃線(_); EF不。如果該屬性被命名爲UserTypeId,則EF將找到它。順便說一句,如果你不想在你的模型類代碼中使用面向數據庫的屬性(我知道我沒有),你可以使用EF流利API來幫助EF理解你的模型。 – Ward 2013-03-04 02:20:45
我們知道有些人希望微風支持多對多。有一個用戶語音項目。我希望人們放棄這個要求,而且我們從不執行。我們將不得不*如果你真的想要它*。但我認爲這是一個可怕的想法......因爲[我已經在其他地方解釋過](http://stackoverflow.com/questions/14902352/breeze-js-error-collection-navigation-properties-may-not-be -組)。與中間實體一起去吧,並且很感激......因爲那天你會爲你感到高興而來。 – Ward 2013-03-04 02:25:22
非常感謝您的回答。我正在使用Fluent Api;但是我認爲使用註釋解釋我的解決方案會更容易。對於多對多的關係,我可以看到你的觀點;我將實施中間實體。謝謝,它幫助我澄清了很多。 – jvrdelafuente 2013-03-04 07:26:56