私のプロジェクトでこれをやろうとしていますEntity Framework Databinding with WinForms シングルフォームの代わりに2つのフォームを使用しています。Entity Framework(マスター詳細)マスターから別のフォームにある詳細
CategoryDataGridView
がForm1
に表示され、その後、ProductsDataGridView
(選択したカテゴリの製品リスト)を持っているのForm2をロードして、変更を保存するには、ボタンを救うForm1
上の編集ボタンは、そこにある
私が持っています私のForm2上の次のコード
ProductContext _context = new ProductContext();
public int SeletedCategID { get; set; }
private void Form2_Load(object sender, EventArgs e)
{
_context.Products.Where(c => c.CategoryId == SeletedCategID).ToList();
productsBindingSource.DataSource = (_context.Products.Local).ToList();
}
private void SaveBtn_Click(object sender, EventArgs e)
{
this.Validate();
foreach (var product in _context.Products.Local.ToList())
{
if (product.Category == null)
{
_context.Products.Remove(product);
}
}
this._context.SaveChanges();
this.productsDataGridView.Refresh();
Form1 frm1 = (Form1)Application.OpenForms["Form1"];
frm1.Activate();
frm1.Refresh();
this.Dispose();
}
私の問題は現在、製品にのみ編集され、DBに保存されています。追加&削除はデータベースに保存されません。
あなたは 'Form1'で何か変更を確認してもよろしいですか?私はそれが独自のキャッシュされたエンティティを持つ独自のコンテキストを持っていると仮定します。 –