【发布时间】:2017-08-24 14:18:39
【问题描述】:
我有这样的查询
myEntity.Database.ExecuteSqlCommand("insert into mytable (id, name) values (mytable_SEQ.nextval,'John')")
mytable_SEQ 是为 mytable 生成唯一 ID 而创建的序列
获取插入 ID 的最佳方法是什么?
【问题讨论】:
-
我认为这与 EF 无关。您可以引入 OUT 参数并使用 Oracle SQL
RETURNING子句 -
它不需要是SP。它可以是匿名 PL/SQL 块,例如类似
ExecuteSqlCommand("begin insert into .... returning id into p_Id; end;", outParameter); -
@IvanStoev 必须声明我不是实体框架向导,但是使用魔术字符串而不是说 LINQ 或任何其他类型安全的提供程序让我有一种不好的感觉。跨度>
-
@kayess 我也是。但那是 OP 问题,这就是为什么我评论它与 EF 无关。 EF 方式是使用
DbSet.Add(entity)、SaveChanges并获取entity.Id。 -
@IvanStoev 是的,这就是我的意思。
标签: c# oracle entity-framework sequence