0

如何在 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 官方教程中找到了类似的内容,但在此链接上(至少对我而言)仍然不太清楚。根据它,我必须做的是建立关系是这样的:

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

OrdemServico: { type: "Array", elementType: "$org.types.OrdemServico", navigationProperty: "Local"}对于本地实体。

这破坏了我的代码并且不起作用。不知道怎么走得更远。

4

1 回答 1

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 帮助您找到关系的另一端。

Person Entity: 一个人可以有多个todos,所以我们定义了一个Todos的集合。elementType 定义集合中项目的类型。您在这里也需要 inverseProperty。

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

于 2013-08-07T15:25:31.117 回答