Entity Framework Core를 사용하여 Identity 열을 구성하는 방법

c# entity-framework-core

문제

Entity Framework 코어에서 자동 증가 ID 열을 어떻게 만듭니 까?

분명히 예를 들어 EF6 용 유창한 API를 사용하여 할 수 있습니다.

수락 된 답변

EF7 문서가 거의 없기 때문에 소스 또는 단위 테스트에서 수집해야하는 내용이 많이 있습니다. EF7 소스의 다음 두 가지 단위 테스트에 따르면 ...

여기여기

Identity에 대한 속성을 다음과 같이 구성합니다.

b.Property(e => e.Id).ForSqlServer().UseIdentity();

다음과 같이 Sequences 속성을 구성합니다.

ForSqlServer().UseSequence();

urp는 aspnet-core reorg로 인해 변경되었으며,이 방법이 처음 변경된 이후로 변경되었습니다.

여기여기

if (_useSequence) 
{
    b.Property(e => e.Identifier).ForSqlServerUseSequenceHiLo();
} 
else 
{
    b.Property(e => e.Identifier).UseSqlServerIdentityColumn();
}

이러한 URL이 다시 변경 될 수도 있습니다 (관련 코드를 포함하는 이유가 될 수 있습니다).하지만 URL을보고 사이트로 이동하여 새로운 URL이 무엇인지 파악하는 것은 매우 쉽습니다.

정말로, 제 답변의 요점은 GitHub의 소스 코드에서 유닛 테스트를보고 보면서이 내용을 스스로 파악할 수 있다는 것입니다. 숟가락으로 먹을 사람이 있으면 먹을 필요가 없습니다.

수정 : 2.1 버전으로 링크를 업데이트 (1.1 및 2.0을 여전히 작동합니다)


인기 답변

최신 버전의 EF7에는 ID 컬럼을 설정하는 새로운 확장 메소드가 있습니다.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{    
  modelBuilder.Entity<MyEntity>(b =>
  {
    b.HasKey(e => e.Identifier);
    b.Property(e => e.Identifier).ValueGeneratedOnAdd();
  });
}


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.