【问题标题】:How can I get the new object id generated by DB sequence?如何获取由 DB 序列生成的新对象 ID?
【发布时间】:2010-07-20 12:38:01
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    如果不致电SaveChanges(),您将无法获得它。想想看。 ID 来自数据库。 SaveChanges() 是导致与数据库通信的第一件事。

    如果要撤消,您有多种选择:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      相关资源
      最近更新 更多