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

时间:2010-07-20 12:38:02

标签: c# database visual-studio oracle entity-framework

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

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

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

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

1 个答案:

答案 0 :(得分:6)

如果不致电SaveChanges(),你就无法得到它。想一想。 ID来自数据库。 SaveChanges()是导致与DB通信的第一件事。

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

  • 在许多情况下,插入时无需知道ID客户端。简单地建立关系就足够了。
  • 使用客户端可生成的ID,如GUID。
  • 使用TransactionScope进行“真实”数据库事务。
  • 执行撤消(DeleteObject)而不是回滚。