2009-06-13 13 views
1

私のデータベースに新しい管理者を追加します。しかし、それは動作しません。 button1_Clickイベントハンドラを見てください。私はこのイベントで値を追加する必要があります。ADO.NET Entity Framework SaveChanges()が機能しません

public partial class Form1 : Form 
    { 
     protected NetTanitimTestEntities adminNameContext; 
     public Form1() 
     { 
      InitializeComponent(); 
      adminNameContext = new NetTanitimTestEntities(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      ObjectQuery<Admins> adminNameQuery = adminNameContext.Admins; 
      dataGridView1.DataSource = adminNameQuery; 
      dataGridView1.Columns["id"].Visible = false; 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 

      using (NetTanitimTestEntities newadmin = new NetTanitimTestEntities()) 
      { 
       Admins admin = new Admins { Name = "ali", SurName = "Çorlu", Username = "acorlu", Password = "1234", UserType = "user" }; 
       newadmin.SaveChanges(); 
      } 
     } 

     private void button2_Click(object sender, EventArgs e) 
     { 
      adminNameContext.SaveChanges(); 
     } 
    }
+0

プログラムを再起動すると、Button1で追加した新しい行が表示されますか? –

+0

新しく作成された "admin"オブジェクトを "newadmin"エンティティコンテキストに* ADD *する必要があります!それ以外の場合、保存するものはありません.....詳細はAlexの答えをご覧ください –

答えて

4
私は認めなければならない

は、私は、Entity Frameworkの全体の束を知らないが、あなたのボタン1クリックイベントでは、あなたの新しいエンティティを作成しているが、あなたは、単にSaveChangesメソッドを呼び出しているが、あなたは追加していません新しいAdminsエンティティをNetTanitimTestEntitiesコンテキストに追加します。したがって、使用しているNetTanitimTestEntitiesコンテキストが、作成した新しいエンティティを認識していないため、データベースには何も保存されないため、収集します。したがって、この新しいAdminsエンティティをコンテキストに追加してからSaveChangesを呼び出すと、DBに永続化されることになります。

13

あなたはあなたのコードに次のコマンドを追加する必要があるように見えます:生成されたメソッドの実際の名前に応じて、

using (NetTanitimTestEntities newadmin = new NetTanitimTestEntities()) 
{ 
    Admins admin = new Admins { Name = "ali", SurName = "Çorlu", Username = "acorlu", Password = "1234", UserType = "user" }; 
    newadmin.AddToAdmins(admin); 
    newadmin.SaveChanges(); 
} 

またはそのような何か。あなたの "newadmin"オブジェクトには、モデルにある各エンティティごとに生成された一連の "add"メソッドが必要です。

関連する問題