JayData实体关系

时间:2013-07-31 20:59:01

标签: javascript jquery 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上它仍然不是那么清楚(至少对我而言)。根据它,我必须做的是建立一种关系是这样的:

对于OrdemServico实体

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

本地实体

OrdemServico: { type: "Array", elementType: "$org.types.OrdemServico", navigationProperty: "Local"}

这会破坏我的代码并且不起作用。不知道该怎么走。

1 个答案:

答案 0 :(得分: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 }
});

Todo实体: 我们将Person导航属性定义为引用字段,其类型为“Person” - 稍后将声明。必须设置inverseProperty才能让JayData帮助您找到关系的另一面。

人员实体: 一个人可以有多个待办事项,所以我们定义了Todos的集合。 elementType定义集合中项目的类型。你也需要inverseProperty。

注意:navigationProperty在早期版本的JayData中有效,在开发人员社区的反馈后重命名为inverseProperty。不幸的是,这个页面没有更新...直到现在...感谢您的询问,如果您仍然发现令人困惑的信息,请告诉我们,我们真的希望文档清晰,最新,但我们有很多内容,我们只能通过您的反馈来做到这一点。谢谢!