2016-12-16 1 views
0

글쎄, 내가 찾은 첫 번째 Google 히트이므로 a tutorial by Milinaudara에서 설명한대로 EF 6에 대한 사용자 지정 주석을 구현하려고했습니다. 튜토리얼은 따라하기 쉽습니다. 그러나, 첫 번째 마이 그 레이션을 실행 한 후에 주석을 열에 추가해야하는 것처럼 보였습니다. creating table - [CaseSensitive]은 실제로 두 번째 마이 그 레이션에서 alter table 작업으로 실행됩니다. 내가 잘못? 왜냐하면 지금까지 내가 경험 한 것이기 때문입니다.엔터티 프레임 워크 사용자 지정 주석

테이블 생성시 해당 주석을 실행할 수 있습니까? [CaseSensitive] 주석을 실제로 적용하려면 EF의 Generate(CreateTableOperation createTableOperation) 메서드를 재정의해야합니까?

답변

0

Generate(AlterColumnOperation alterColumnOperation) 모델이 변경되었을 때만 호출되어 테이블 생성 또는 새 열 추가에 불이 나지 않았습니다. 아마도이 방법은 분명하지만 튜토리얼에서는 언급하지 않았을 것입니다. 각 메서드에 대한 배경 이야기는 더 좋을 것입니다. .. 나는 Generate(AddColumnOperation addColumnOperation)을 무시 끝나고 Generate(CreateTableOperation createTableOperation)은 그래서처럼 보였다 : 우리는 모든 동작의 안전을 바꿀 생각해서는 안 알고 있지만 AlterColumnOperation을 구성하는 것은 좋은 생각이있을 때 false을 통과, 그래서 ..

protected override void Generate(AddColumnOperation addColumnOperation) 
    { 
     //add the column 
     base.Generate(addColumnOperation); 

     //alter the column 
     this.Generate(new AlterColumnOperation(addColumnOperation.Table, addColumnOperation.Column, false)); 
    } 

    protected override void Generate(CreateTableOperation createTableOperation) 
    { 
     //add the column 
     base.Generate(createTableOperation); 

     //alter the column 
     foreach(ColumnModel column in createTableOperation.Columns) 
     { 
      this.Generate(new AlterColumnOperation(createTableOperation.Name, column, false)); 
     } 
    } 

.

관련 문제