2012-10-22 4 views
7

newsequentialid()을 PK 열의 기본값으로 어떻게 사용할 수 있습니까?엔터티 프레임 워크 5 코드 첫 번째 newsequentialid() as PK

나는이 주석이 있습니다

[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 

을하지만 내가 순차적 GUID의의를하고 싶은 임의 GUID의의를 생성합니다.

기본값으로 newsequentialid()에 데이터베이스를 직접 설정할 수 있지만 더 좋은 옵션이 있습니까? 아니면 EF 팀이이 옵션을 잊어 버렸습니까?

답변

14

마이그레이션을 사용하는 경우 newsequentialid()DefaultValueSql으로 사용하기 위해 코드 기반 마이그레이션을 간단하게 수정할 수 있어야합니다.

public override void Up() { 
    CreateTable(
     "SomeTable", 
     c => new { 
      Id = c.Guid(nullable: false, defaultValueSql: "newsequentialid()"), 
     }) 
     .PrimaryKey(t => t.Id) 
    ); 
} 

마이그레이션을 사용하지 않는 경우 여기를 확인하십시오. question.

+0

Key와 DatabaseGenerated를 쉼표로 구분하여 추가해야만했습니다. 별도로 추가하면 작동하지 않습니다. –