시퀀스Sequences

참고

시퀀스는 일반적으로 관계형 데이터베이스 에서만 지원 되는 기능입니다.Sequences are a feature typically supported only by relational databases. Cosmos와 같은 비관계형 데이터베이스를 사용 하는 경우 고유한 값을 생성 하는 방법에 대 한 자세한 내용은 데이터베이스 설명서를 참조 하십시오.If you're using a non-relational database such as Cosmos, check your database documentation on generating unique values.

시퀀스는 데이터베이스에서 고유한 순차 숫자 값을 생성 합니다.A sequence generates unique, sequential numeric values in the database. 시퀀스는 특정 테이블과 연결 되지 않으며, 여러 테이블을 설정 하 여 동일한 시퀀스에서 값을 그릴 수 있습니다.Sequences are not associated with a specific table, and multiple tables can be set up to draw values from the same sequence.

기본적인 사용 방법Basic usage

모델에서 시퀀스를 설정 하 고이를 사용 하 여 속성에 대 한 값을 생성할 수 있습니다.You can set up a sequence in the model, and then use it to generate values for properties:

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

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

시퀀스에서 값을 생성 하는 데 사용 되는 특정 SQL은 데이터베이스 전용입니다. 위의 예는 SQL Server에서 작동 하지만 다른 데이터베이스에서는 실패 합니다.Note that the specific SQL used to generate a value from a sequence is database-specific; the above example works on SQL Server but will fail on other databases. 자세한 내용은 특정 데이터베이스의 설명서를 참조 하세요.Consult your specific database's documentation for more information.

시퀀스 설정 구성Configuring sequence settings

또한 해당 스키마, 시작 값, 증가값 등 시퀀스의 추가 측면을 구성할 수 있습니다.You can also configure additional aspects of the sequence, such as its schema, start value, increment, etc.:

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