ORMLite OpenTransaction批量插入和再回到新的GUID(ORMLite Open

2019-10-19 05:40发布

我试图用ServiceStack ORMLite运行这个:

        using (var o = Conn.OpenDbConnection()) {
            using (var t = o.OpenTransaction()) {
              foreach(var item in items) o.Insert(item);
              t.Commit();
              //now, how do I get back the new item ids I have just inserted?
            }
        }

在代码中,我怎么找回了一批新的ID? 也注意到了非批量版本GetLastInsertId()只返回一个Long。 我该怎么办时,我的ID类型是一个GUID? 谢谢。

此外,当你在这里,我想也问,如果t.Commit(); 失败,抛出一个异常,是否有必要存在调用t.Rollback(); ? 由于事务结束呢?

Answer 1:

V4, db.Save()自动填充自动序列编号,例如:

db.Save(item);
item.Id //populated with the auto-incremented id

否则,你可以使用选择最后一个插入ID:

var itemId = db.Insert(item, selectIdentity:true);

下面是更多的例子展示OrmLite的新的API 。



文章来源: ORMLite OpenTransaction batch Insert & Getting back new Guids