如何使用 Linq2DB 找到使用 Oracle 序列 NextVal 方法创建的新对象的 ID?

How can I find the ID of a new object created using the Oracle sequence NextVal method using Linq2DB?

我们正在使用 Linq2DB 读取和写入 Oracle table,使用 Oracle 序列来跟踪主键的下一个值。

我发现我给 ID 属性 添加了一个 SequenceName 属性,Linq2DB 调用 MY_SEQ.NextVal:

public class myLinq2DBClass
{ 
      [Column, SequenceName("MY_SEQ")]
      public int Id { get; set; }

然后我像这样创建一个新对象:

var newObject = new myLinq2DBClass();
db.MyLinq2DBTable.Insert(newObject);

var newID = newObject.Id; // still zero?

有没有办法获取新的Id?

我想知道 Insert 是否会 return 它,但它 return 是插入的行数。

linq2db 不跟踪更改并且不在没有显式操作的情况下检索值。使用 InsertWithInt32Identity 代替

var newID = db.InsertWithInt32Identity(newObject);