我根據Breeze支持的建議升級到1.4.1,但我遇到以下問題。以前,在新創建的實體上的導航屬性被定義,但是是空值的挖空觀測值。我修改了Breezejs TODO應用程序來顯示它。Breeze.js 1.4.1屬性undefined不爲空
我的數據模型之下,我的前端代碼是在這裏:
function reproduce() {
breeze.NamingConvention.camelCase.setAsDefault();
var manager = new breeze.EntityManager(serviceName);
manager.fetchMetadata().then(function() {
var parent = manager.createEntity('Parent');
console.log('otherProperty ' + parent.otherProperty());
console.log('childOne ' + parent.childOne());
// I cannot call parent.childrenTwo() since childrenTwois undefined
console.log('childrenTwo ' + parent.childrenTwo);
});
}
的問題是,在微風的早期版本,性能otherProperty和childOne將是淘汰賽觀察到一個空值和屬性childrenTwo將是一個空的可觀察數組。 但是,正如我在控制檯中看到的那樣,所有三個屬性都是未定義的?這是故意的嗎?
我當然可以自己定義它們,但這是很多工作和我期望的微風待辦事項。另外根據Breeze文檔「很少有理由定義已經在元數據中描述的屬性。」 http://www.breezejs.com/documentation/extending-entities
更新1:
感謝周杰倫Traband,在我的再現程序,我沒有正確設置外殼。然而childrenTwo仍然沒有定義,我相信它應該是一個可觀察的數組。我的產品應用確實設置了套管,所以我不得不重新調查。
更新2:再次周杰倫Traband
謝謝,我發現,微風metastore不知道的ChildTwo類型。因此,我似乎沒有註冊它?我比Java Entity Framework更熟悉Java Hibernate。從我的數據模型中缺少一些東西?
更新3:
ChildTwo沒有一個明確的外鍵,我補充說,它的工作。我想我真的需要考慮Breeze想要一個明確的外鍵。
public class ChildTwo
{
[Key]
public int Id { get; set; }
public int ParentId { get; set; }
[ForeignKey("ParentId")]
public Parent Parent { get; set; }
}
數據模型。
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Todo.Models
{
public class Parent
{
public Parent()
{
ChildrenTwo = new List<ChildTwo>();
}
[Key]
public int Id { get; set; }
[Required]
public string OtherProperty { get; set; }
[Required]
public ChildOne ChildOne { get; set; }
[Required]
public IList<ChildTwo> ChildrenTwo { get; set; }
}
public class ChildOne
{
[Key]
[ForeignKey("Parent")]
public int Id { get; set; }
public Parent Parent { get; set; }
}
public class ChildTwo
{
[Key]
public int Id { get; set; }
public Parent Parent { get; set; }
}
}
這可能是一個複製粘貼錯誤,但您意識到如果這些屬性是可觀察的,您需要使用parans正確嗎?即 - console.log('otherProperty'+ parent()。otherProperty());如果你想獲取屬性,parent()。otherProperty如果你想看看它是不是未定義的? –
由於這些屬性未定義,因此將它們稱爲函數會導致錯誤。日誌調用只是爲了告訴我它們是未定義的還是實際可觀察的。我添加了一條評論,描述爲什麼我不能()調用屬性。 –
用父母()調用他們。otherProperty不應該返回錯誤...也可以考慮在之前提出的被問及的問題中標記答案,以幫助他人在未來找到答案。 –