2013-07-31 145 views
0

我如何在JayData上創建實體之間的關係?JayData實體關係

這是我的表模式:

$data.Entity.extend("OrdemServico", { 
    Status: { type: String }, 
    SafAnoSafra: { type: "int" }, 
    LancObservacao: { type: String }, 
    LancDtPrevIni: { type: Date }, 
    LancDtPrevFim: { type: Date }, 
    LancData: { type: Date }, 
    CodSubprocesso: { type: "int" }, 
    CodProcesso: { type: "int" }, 
    CodOs: { type: "int" }, 
    CodFuncEmpr: { type: "int" }, 
    CodFuncAplic: { type: "int" }, 
    CodFuncApliEmpr: { type: "int" }, 
    CodFunc: { type: "int" }, 
    CodFrente: { type: "int" }, 
    CodEmpr: { type: "int" } 
}); 

$data.Entity.extend("Local", { 
    SafAnoSafra: { type: "int" }, 
    PerAreaOs: { type: "decimal" }, 
    IdDivi4: { type: "int" }, 
    CodOs: { type: "int" }, 
    CodEmpr: { type: "int" }, 
    CodDivi4: { type: "int" }, 
    CodDivi3: { type: "int" }, 
    CodDivi2: { type: "int" }, 
    CodDivi1: { type: "int" }, 
    AreaOs: { type: "decimal" }, 
    AreaLiquida: { type: "decimal" } 
}); 

的關係是:

OrdemServico.SafAnoSafra -> Local.SafAnoSafra 
OrdemServico.CodEmpr -> Local.CodEmpr 
OrdemServico.CodOs -> Local.CodOs 

許多搜索,我發現接近這個東西在官方JayData教程後,但它仍然不是那麼清除它(至少對我來說)this link。根據它,我有什麼做囑咐的關係是這樣的:

Locais: {type: "Array", elementType: "$org.types.Local", navigationProperty: "OrdemServico"}爲OrdemServico實體...

OrdemServico: { type: "Array", elementType: "$org.types.OrdemServico", navigationProperty: "Local"}本地實體。

這打破了我的代碼,並沒有奏效。不知道如何走得更遠。

回答

1

查看JayData主頁上的代碼片段 - 查找「關係」。

我解釋的基本知識,使之具有了最新的例子清楚:

$data.Entity.extend("Todo", { 
    Id: { type: "int", key: true, computed: true }, 
    Task: { type: String, required: true, maxLength: 200 }, 
    Person: { type: "Person", required: true, inverseProperty: "Todos"} 
}); 

$data.Entity.extend("Person", { 
    Id: { type: "int", key: true, computed: true }, 
    Name: { type: String, required: true, maxLength: 200 }, 
    Todos: { type: Array, elementType: Todo, inverseProperty: "Person" } 
}); 

$data.EntityContext.extend("TodoDatabase", { 
    Todos: { type: $data.EntitySet, elementType: Todo }, 
    People: { type: $data.EntitySet, elementType: Person } 
}); 

藤實體: 我們定義的人導航屬性爲參考場,它的類型是「人員「 - 將在稍後宣佈。 inverseProperty必須設置爲讓JayData幫助您找到關係的另一面。

個人實體: 一個人可以有多個待辦事項,所以我們定義了一個Todos的集合。 elementType定義集合中項目的類型。你也需要inverseProperty。

注意:navigationProperty在早期版本的JayData中有效,在開發人員社區的反饋之後,它被重命名爲inverseProperty。不幸的是,這個網頁並沒有更新...直到現在......感謝您的詢問,讓我們知道如果您仍然發現令人困惑的信息,我們真的希望文檔清晰並且是最新的,但是我們有很多內容,我們只能在您的反饋意見下完成。謝謝!

+0

謝謝你的回答。我們正在享受JayData,但是當需要文檔實現某些功能時,我們感到有些無奈。我們使用JayData模型,它們工作得很好,但僅用於數據持久性。由於我們缺乏有關JayData使用的經驗和結果,因此我們選擇直接在本地數據庫上使用JavaScript本地函數執行純SQL查詢。目前它正在工作,我們會讓JayData保持在不久的將來改善它的使用。我發佈的問題已經修復,無論如何,感謝您的關注。 – DontVoteMeDown

+0

可以請你分享一些例子給你原生的SQL查詢嗎?這篇文章對你有幫助嗎? - http://jaydata.org/blog/javascript-language-query-jslq-101我們正在考慮發佈THE JayData書籍。讓我們知道你想要達到的目標,在不那麼容易找到的地方有許多文檔化的功能,也沒有非正式的功能。您的反饋可能會觸發舊文檔的更新並創建新文檔 – Robesz

+0

太好了,我很高興聽到這個消息!許多社區成員會對你的意見感興趣。我剛剛在JayData論壇上看到你發佈的帖子,這是與社區合作的最佳溝通渠道 - 如果我離線一週,你就不會陷入困境:) – Robesz