시퀀스

참고 항목

시퀀스는 일반적으로 관계형 데이터베이스에서만 지원되는 기능입니다. Azure Cosmos DB와 같은 비관계형 데이터베이스를 사용하는 경우 고유한 값 생성에 대한 데이터베이스 설명서를 확인합니다.

시퀀스는 데이터베이스에 고유한 순차적 숫자 값을 생성합니다. 시퀀스는 특정 테이블과 연결되지 않으며 동일한 시퀀스에서 값을 그리도록 여러 테이블을 설정할 수 있습니다.

기본 사용법

모델에서 시퀀스를 설정한 다음, 이를 사용하여 속성에 대한 값을 생성할 수 있습니다.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.HasSequence<int>("OrderNumbers");

    modelBuilder.Entity<Order>()
        .Property(o => o.OrderNo)
        .HasDefaultValueSql("NEXT VALUE FOR OrderNumbers");
}

시퀀스에서 값을 생성하는 데 사용되는 특정 SQL은 데이터베이스에 따라 다릅니다. 위의 예제는 SQL Server 작동하지만 다른 데이터베이스에서는 실패합니다. 자세한 내용은 데이터베이스 공급자 설명서를 참조하세요.

시퀀스 설정 구성

스키마, 시작 값, 증분 등 시퀀스의 추가 측면을 구성할 수도 있습니다.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.HasSequence<int>("OrderNumbers", schema: "shared")
        .StartsAt(1000)
        .IncrementsBy(5);
}