我正在尝试使用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();
?既然交易结束了呢?
答案 0 :(得分:1)
在 v4 中,db.Save()
自动填充自动增量ID,例如:
db.Save(item);
item.Id //populated with the auto-incremented id
否则,您可以使用以下方法选择最后一个插入ID:
var itemId = db.Insert(item, selectIdentity:true);