エンティティ モデル (モデル ファースト アプローチで作成) を介して DataGridView コントロールをデータベースにデータバインドしたいのですが、EF 5.0、.NET 4.5、および winforms を使用しています。
私のバインディングは次のように構成されています。
DataGridView->BindingSource->BindingList->EF.DbSet->データベース
結果(問題)は
1) 既存のレコードの更新が適切に機能している
2)挿入は BindingList に送信されますが、EF.DbSet には送信されません。
これの原因は何ですか?どうすれば解決できますか?
私のコード:
//form level objects
private BindingList<Person> persons;
private BindingSource pSource=new BindingSource();
private void Form1_Load(object sender, EventArgs e)
{
_context=new TestEFmodelContainer();
var p = _context.PersonSet.ToList();
persons = new BindingList<Person>(p); //getting bindinglist
persons.AllowEdit = true;
persons.AllowNew = true;
pSource.DataSource = persons;
pSource.AllowNew = true;
personDataGridView.DataSource = pSource;
}
//"Save changes to DB" button
private void SaveChangesToDB_Click(object sender, EventArgs e)
{
_context.SaveChanges();
}