提问人:AsM 提问时间:11/15/2023 最后编辑:AsM 更新时间:11/16/2023 访问量:106
在 EntityFramework 中获取序列的 nextvalue
Get nextvalue of sequence in EntityFramework
问:
我正在尝试获取我的 blazorserver 序列的下一个值。
该序列是很久以前在现有数据库中创建的。
我想通过我新开发的 blazorserver 检索该值。
模型生成器
modelBuilder.HasSequence<long>("sequence_name");
法典
var seq = _db.Database.ExecuteSqlRaw("select nextval('sequence_name')");
结果
seq = -1
获取序列下一个值的正确方法是什么?
答:
0赞
AsM
11/15/2023
#1
根据 Microsoft 的查询标量(非实体)类型,LINQ 和 SQL 可以一起用于无实体类型。
var seq = _db.Database.SqlQueryRaw<long>("select nextval('sequence_name')");
评论
1赞
madreflection
11/15/2023
在你的问题中,你说你用了,所以我编辑了你的回答用了。确保在代码中执行相同的操作。HasSequence<long>
SqlQueryRaw<long>
评论
SELECT NEXT VALUE FOR sequence_name
SELECT sequence_name.NEXTVAL
modelBuilder.Property(entity => entity.Id).HasDefaultValueSql("NEXT VALUE FOR sequence_name");
nextval