如何获取DB序列生成的新对象ID?

Mat*_*tan 3 c# database oracle entity-framework visual-studio

我有表序列和触发器,因此在将其插入数据库时​​会创建新的id.

在调用SaveChanges()之前,如何获取新的对象id?

我需要这个id用于新对象和其他对象之间的链接.

我想在调用SaveChanges之前这样做,因为我想要回滚选项.

Cra*_*ntz 6

没有打电话就无法得到它SaveChanges().想一想.ID来自数据库.SaveChanges()是导致与DB通信的第一件事.

如果要撤消,您有以下几种选择:

  • 在许多情况下,插入时无需知道ID客户端.简单地创建关系就足够了.
  • 使用客户端生成的ID,如GUID.
  • 使用TransactionScope一个"真正"的数据库事务.
  • 执行undo(DeleteObject)而不是回滚.