【问题标题】:Linq 2 IndexedDB: how to retrieve last inserted auto-incremented key?Linq 2 IndexedDB:如何检索最后插入的自动递增键?
【发布时间】:2012-08-15 00:56:10
【问题描述】:

我在我的 Windows8 应用程序中使用 IndexedDB(通过 Linq2IndexedDB 块)来处理本地存储。我需要检索插入到本地数据库中的最后一个自动递增的 ID(相当于 mysql_insert_id)。我该如何继续?

我通过以下方式检索我的记录:

db.linq.from("favoriteSearches").select().then(function(searches) {
    // ....
});

但我在搜索中找不到密钥。

【问题讨论】:

    标签: indexeddb winjs


    【解决方案1】:

    如果对象存储有 keyPath,则该对象将包含 key path 中定义的属性中的 key。

    如果您没有定义数据库配置,linq2indexeddb 将在自动生成模式下运行。这意味着在您需要时创建对象存储和索引。如果是这种情况并且对象存储是自动创建的,则对象存储的 keyPath 是“Id”,在返回数据中,您应该在“Id”属性中找到键值

    编辑: 如果您使用最新版本的 linq2indexedDB 库 1.0.13,您将在插入数据时返回密钥

    db.linq.from("favoriteSearches").insert(data).then(function (args){ 
        var key = args.key;
        var data = args.data;
    })
    

    【讨论】:

    • 非常感谢您在 Twitter 和此处的支持。确实,我用参数dbConfig来指定keyPath,一切都是正确的。不确定,但随着最新更新,DBViewer 似乎坏了。也许我的代码中存在问题。会调查。 :)
    • Tnx 提到了 dbviewer 的问题,我会尽快调查。如果您在 linq2indexeddb 方法上配置它,您还可以使用 db.viewer 查看 indexeddb 内部。 var db = linq2indexeddb("name", dbConfig, true) --> 最后一个参数启用日志记录+查看器。
    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 2013-02-24
    • 2012-04-06
    • 2012-05-08
    相关资源
    最近更新 更多