在 EF Core 6 中,您可以映射序列并将其用于映射的实体。
序列映射
protected override void OnModelCreating(ModelBuilder b)
{
b.HasSequence<int>("seq_certificate_trade_request", "ts");
}
我只需要下一个序列值,但没有使用它的类型。
今天我使用以下代码
public int GetNewCertificateTradeRequestIdentity()
{
using var command = _context.Database.GetDbConnection().CreateCommand();
command.CommandText = "SELECT ts.seq_certificate_trade_request.NEXTVAL FROM DUAL";
_context.Database.OpenConnection();
using var reader = command.ExecuteReader();
reader.Read();
return reader.GetInt32(0);
}
但是如果能使用 EF6 中内置的代码就好了
那么我可以直接调用序列seq_certificate_trade_request吗?
实际上可以自定义
OnModelCreating()
方法,以便在需要时(例如,在 INSERT
操作期间)自动从序列中恢复下一个值。
看这里: https://learn.microsoft.com/en-us/ef/core/modeling/sequences