【问题标题】:Get entity by id jaydata通过 id jaydata 获取实体
【发布时间】:2026-01-05 19:55:01
【问题描述】:

我用 jaydata 在 WebSQL 数据库中创建了任务表。

$data.Entity.extend("Task", {
        Id: {
            type: "int", 
            key: true, 
            computed: true
        },
        Task: {
            type: "text", 
            required: true
        },
        Last: {
            type: "date"
        },
        .....
$data.EntityContext.extend("TaskDatabase", {
    Tasks: {
        type: $data.EntitySet, 
        elementType: Task
    }
});

taskDB = new TaskDatabase("Work");

为什么我的表格有两列“Id”?

我想通过 Id 从表中获取实体。我该怎么做?感谢您的回答。

我试过了(companyId = 2):

    taskDB.Tasks.read(companyId).then(function (item) {
    console.log(item.Task);
});

    taskDB.Tasks.single(function (task) 
        { return task.Id == this.Id }, 
        { Id: companyId },
        renderCompany);

【问题讨论】:

  • var task = taskDB.Tasks.attachOrGet({ Id: companyId }); 可以工作,但是当我将此代码放入 taskDB.onReady() 时,id 不起作用:(

标签: jaydata


【解决方案1】:

免责声明:我为 JayData 项目工作

本质是这样的:

taskDB.onReady(function() {
      taskDB.Tasks.find(newTask.TaskId)
                  .then(function(item) {
                    document.write("Found:" + JSON.stringify(item) +"<br>");
...

请参阅我创建的关于如何创建新项目或查询它们的这个 plunk:http://plnkr.co/edit/OTsMEDUX6OwzT8jcom7q?p=preview

至于重复的 id:它只是一个显示的东西 - chrome 资源查看器将主键列显示为一种行标题。

【讨论】: