簡體   English   中英

微風-自我參照實體

[英]Breeze - self referencing entity

使用Breeze通過我的ASP.NET Web API應用程序執行查詢時遇到一些問題。

這是我要請求的實體定義:

[Serializable]
[DataContract]
public class Subject
{

    public Subject()
    {
        Subjects = new List<Subject>();
    }
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public String Name { get; set; }

    [DataMember]
    public Subject Parent { get; set; }

    [DataMember]
    public IList<Subject> Subjects { get; set; }
}

這是我的datacontext.js文件中的查詢

var query = EntityQuery.from("Subjects");

            manager.executeQuery(query)
            .then(function (data) {                    
                // do something with data.results
            })
            .fail(function (error) {

            });

但是查詢總是失敗,並顯示錯誤消息“ expected object”

對其他“簡單”實體的所有其他查詢都可以正常工作。 如果我從主題實體中刪除屬性“父母”和“主題”,則該查詢有效。

有人有主意嗎?

謝謝 !

Breeze需要一個外鍵來修正實體之間的關系,而您在Subject類定義中將其遺漏了:

[DataMember]
public System.Nullable<int> ParentId { get; set; }

或者,如果您使用的是非常規命名,請確保將ForeignKey標記添加到導航中:

[DataMember]
[ForeignKey("FKParentId")]
public Subject Parent { get; set; }

您也可以通過Fluent接口定義它。 您可以在http://msdn.microsoft.com/zh-cn/data/hh134698.aspx上找到更多相關信息。

謝謝 !

我添加了: [DataMember] public System.Nullable<int> ParentId { get; set; } [DataMember] public System.Nullable<int> ParentId { get; set; }

現在可以正常工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM