2016-07-18 1 views
2

먼저 EF 코드를 사용하고 있는데 새 테이블을 만들고 기존 테이블의 값을 삽입하려고합니다.엔티티 프레임 워크 코드 - 먼저 테이블을 만들고 기존 테이블의 데이터를 새로 만든 테이블에 삽입합니다.

public override void Up() 
     { 
      CreateTable(
       "dbo.UserCulture", 
       c => new 
       { 
        UserCultureId = c.Int(false, true), 
        Id = c.Int(false), 
        IsSelected = c.Boolean(false), 
        Culture = c.String(false, 10), 
        UserLevel = c.Int(false), 
        CurrentScore = c.Int(false), 
        TimelinePercentage = c.String(false, 3), 
        NumberOfGamesPlayed = c.Int(false) 

       }) 
       .PrimaryKey(k => k.UserCultureId) 
       .ForeignKey("dbo.AskUser", k => k.Id) 
       .Index(t => t.Id); 

      Sql("INSERT INTO UserCulture(UserCultureId, Id, IsSelected, Culture, UserLevel, CurrentScore, TimelinePercentage, NumberOfGamesPlayed)" + 
       "SELECT newid(), UserId, 1, CreatedCulture, UserLevel, CurrentScore, TimelinePercentage, NumberOfGamesPlayed FROM AskUser"); 

     } 

이 마이그레이션을 실행했을 때 테이블이 생성되었지만 비어있었습니다. 아무도 내가 뭘해야하는지 알지?

+0

@AlexandruMihai 내가 VALUES가 필요없는 선택 진술을 사용하고 있기 때문에 생각합니다. Ppp 대답이 저에게 효과적입니다. –

답변

0

newid()는 uniqueidentifier입니까? insert 문에서 해당 열을 제거해볼 수 있습니까?

Sql("INSERT INTO UserCulture(Id, IsSelected, Culture, UserLevel, CurrentScore, TimelinePercentage, NumberOfGamesPlayed)" + 
       "SELECT UserId, 1, CreatedCulture, UserLevel, CurrentScore, TimelinePercentage, NumberOfGamesPlayed FROM AskUser"); 
+0

고마워, 그 위대한 작품. newid()는 다른 예제에서 가져온 것이지만 이드의 증가하는 시드 때문에 필요하지 않다고 생각합니다. –

+0

예, insert 문에 ID 열이 필요하지 않습니다. – Ppp