【发布时间】:2021-04-20 17:34:35
【问题描述】:
我已经习惯了 SQL Server 世界,如果我想创建一个供许多会话使用的“下一个数字”表,我可能会使用某种 INT IDENTITY(1,1) AUTO INCREMENT 列单行表,并严格控制事务访问以确保每个请求 ID 的人都有唯一的下一个可用。
但是,我目前正在使用 Entity Framework Core 和 PostgreSQL,并且遇到了 SEQUENCE 和 nextval 功能。这听起来很适合这个要求,但我不清楚或不确定如果我尝试将它引入 EF Core 会发生什么。我使用数据库优先方法,并在开始时从现有表中生成所有模型。如果我需要添加一个新列,我只需将其手动添加到我的 EF 代码中,如果我需要做一些更基本的事情,比如新表,我将重新运行 db scaffold EF Core CLI 命令,将特定表引用为范围。
因为这个 'SEQUENCE' 表 - 对于像我这样的 SQL 服务器人来说 - 似乎是特殊的 PostgreSQL 巫术,谁能解释一下如果我尝试从数据库中构建这个表会是什么样子?它会显示为普通的表模型/实体吗? 是否需要任何特别的东西,因为我希望能够从该表中选择以获得下一个可用的数字(有时来自多个连续快速的会话)?
【问题讨论】:
标签: c# postgresql entity-framework sequence