【发布时间】:2016-05-31 13:53:07
【问题描述】:
我正在尝试为我的项目 Entity Framework Databinding with WinForms 执行此操作 但我没有使用单一形式,而是使用 2 种形式。
CategoryDataGridView显示在Form1上,然后Form1上有一个编辑按钮,它将加载具有ProductsDataGridView(所选类别的产品列表)的Form2和一个保存按钮以保存变化
我的 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();
}
我现在的问题是仅将产品的编辑保存到数据库。添加和删除不会保存到数据库中。
【问题讨论】:
-
你确定你会看到
Form1的变化吗?我假设它有自己的上下文和自己的缓存实体。
标签: c# winforms entity-framework