gpt4 book ai didi

c# - 如何使用 Entity Framework 使用序列在 Oracle 中插入标识值

转载 作者:行者123 更新时间:2023-11-30 23:19:16 26 4
gpt4 key购买 nike

在 Oracle 数据库中,有一个定义为数字的 ID 列:

enter image description here

...以及表的相应序列...:

enter image description here

如何确保 ID 列获得序列中的下一个值?

using (var db = new MyOracleDb()){
var user= new User(){ first_name = 'Abe', last_name = 'Lincoln'};
//Do something here with the sequence and set the ID?
db.User.Add(user);
db.SaveChanges();
}

我使用的是最新的 Oracle.ManagedDataAccess 和 Oracle.ManagedDataAccess.EntityFramework + EF6x。

最佳答案

这不是 EF 问题,因为 oracle 中没有自动递增。您将不得不手动获取序列值,或者创建一个 trigger为您设置。

更新

为了获得序列值,您有两个选择 - 创建一个返回值的存储过程 - 或者创建一个 .Net 函数(不一定要在函数中,它更简单)调用原始 SQL像这样:

Database.SqlQuery<int>("SELECT SEQ_SOMESEQ.NEXTVAL FROM dual");

我个人对 oracle 函数和 EF 有很多问题,所以我会使用原始 sql。

关于c# - 如何使用 Entity Framework 使用序列在 Oracle 中插入标识值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40382947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com