【问题标题】:EF6, Oracle, and Identity columnEF6、Oracle 和身份列
【发布时间】:2017-02-04 18:44:45
【问题描述】:

这适用于 EF5,但 EF6 似乎存在问题。

我们正在尝试使用 EF6 将新行保存到表中。主键列被标记为 Identity 值,我们在表上有一个插入触发器。

当我们调用 db.saveChanges() 时,它总是尝试使用 0 作为主键列值。

如果我们通过 Toad 插入记录,它会正确使用触发器。所以触发器正在工作。

如果我们将触发器更改为检查 0 而不是 null,那么它也可以工作。

还有其他人在使用 EF6 时遇到过这个问题吗?

谢谢, 乔

【问题讨论】:

  • 在 EF4 中,我总是必须通过从对偶中选择序列值来获取新的主键。然后任何插入都使用了正确的主键,现在这可用于插入到子表中。
  • @kevinsky,这基本上就是他的 BI 触发器可能会做的事情。
  • 您使用的是什么版本的 Oracle.Net?
  • 12.1.022版本的Oracle.Net
  • 您是否使用 Database First/EDMX 生成?如果是这样,StoreGeneratedPattern 设置为什么?

标签: asp.net-mvc oracle entity-framework


【解决方案1】:

使用 12c 可以正常工作

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Number { get; set; }

【讨论】:

    猜你喜欢
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多