c# - 如何获取数据库序列生成的新对象 ID?

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

我有一个带有序列和触发器的表,因此在将它插入到数据库时会创建新的 ID。

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

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

我想在调用 SaveChanges 之前执行此操作,因为我希望可以选择回滚。

最佳答案

如果不调用 SaveChanges() 就无法获取它。想想看。 ID 来自数据库。 SaveChanges() 是引起与数据库通信的第一件事。

如果你想撤销,你有几种选择:

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

关于c# - 如何获取数据库序列生成的新对象 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3289934/

相关文章:

c# - 如何在我的 Visual Studio 解决方案中找到所有命名空间?

c# - 使用 .net 为 x64 显式编译是否有意义?

html - XSS 攻击,多次 html 清理

java - 如何使用 JAVA GUI 在数据库 MySQL 中乘以 2 列?

mysql - 在 mysql View 中传递参数

c# - 加载并调用包含 javascript 的 html 文件

c - 什么编译器支持多编程语言?

c# - 使用 System.Timers.Timer 打开一个新表单有多糟糕?

c# - 代码优先模型映射

c# - 在提交按钮的 OnClientClick 事件上调用 javascript 函数