[英]Breeze.js 1.4.1 properties undefined not null
根據Breeze支持的建議,我已升級到1.4.1,但存在以下問題。 以前,已定義新創建實體的導航屬性,但可觀察到值為空的敲除。 我修改了Breezejs TODO應用程序以顯示此內容。
我的數據模型在下面,前端代碼在這里:
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:
感謝Jay Traband,在我的復制應用程序中,我沒有正確設置外殼。 但是childrenTwo仍未定義,我相信它應該是一個可觀察的數組。 我的生產應用程序確實設置了大小寫,因此我必須對此進行重新調查。
更新2:
再次感謝Jay Traband,我發現微風的metastore不了解ChildTwo類型。 因此,似乎我沒有以某種方式進行注冊? 我對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; }
}
}
我只是做了一些簡單的測試,無法對此進行復制。 在調用createEntity之后,在所有測試中,我都將實體的導航屬性視為可剔除的可觀察對象。 一些想法;
您確定您不會無意中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.