2016-07-18 16 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を必要としないselect文を使用していると思います。 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()が別の例から取ったものだと思っていますが、Idのインクリメントのために必要ではありません。 –

+0

はい、insert文にID列は必要ありません – Ppp

関連する問題