2017-10-31 4 views
0

テーブルに手動でデータを挿入したいとします。私は、私はこのエラーを取得しないとき は、この移行をタグ付けするので、この問題は error Image attachedコードの最初の移行が使用されているときにビジュアルスタジオのサーバーエクスプローラを介してテーブルに手動でデータを挿入できません

+0

このエラーは、以下のとおりです。無効な外部キーMembershipTypeIdがあります。このキーには、そのテーブルの既存の値を入力する必要があります。移行とは関係ありません。あなたはそれがヌル可能であることを望みましたか? –

+0

私はそれがnullableであることを望んでいません。テーブル@SteveGreeneにデータを挿入するために何をすべきかアドバイスしてください –

答えて

0

を助けてください修正する方法 [以下の画像を参照]、そしてあなたがその仕組みあなたのテーブルにデータを取得しようとしている表示されますSeedingと呼ばれます。あなたは、このコードが実行されるupdate-databaseを実行すると、今

protected override void Seed(MyDbContext context) 
{ 
    context.Customers.AddOrUpdate(
     c => c.Name, // Use Name (or some other unique field) instead of Id 
     new Customer 
     { 
      Name = "Customer 1", 
      IsSubscribed = false, 
      MembershipTypeId = 1 // A value from MembershipType table 
     }, 
     new Customer 
     { 
      Name = "Customer 2", 
      IsSubscribed = true, 
      MembershipTypeId = 2 // A value from MembershipType table 
     }); 

    context.SaveChanges(); 
} 

と顧客がデータベースにない場合、彼らが追加されます:あなたはこのようなシード()メソッドをオーバーライドすることができます。データベースを削除すると、次にマイグレーションを実行するときに追加されます。

手動で挿入する場合は、その列に有効なMembershipTypeIdを指定する必要があります(有効な値についてはMembershipTypeテーブルを検索してください)。

関連する問題