Savechange()表示由同一个DbContext加载的特定实体

时间:2014-07-15 00:52:03

标签: c# entity-framework dbcontext savechanges

请为此方案寻求解决方案(请提供代码):

  1. 我有两个由同一个DbContext
  2. 加载的实体(X和Y)
  3. 加载实体X
  4. 修改后的实体X
  5. 加载实体Y
  6. 修改后的实体Y
  7. 保存实体Y的更改
  8. 撤消实体X的更改
  9. 每当我保存实体Y的更改时,它也将应用于实体X

    我的示例代码:

    1-加载并更新客户端X:

    public static void UpdateClient(ModeleContainer GStock, Modele.Client Client)
            {
                try
                {
                        using (frmClient frmClient = new frmClient(GStock, Client))
                        {
                            if (frmClient.ShowDialog() == DialogResult.Cancel)
                            {
                                GStock.UndoDbContext();
                            }
                            else
                            if (frmClient.ShowDialog() == DialogResult.OK)
                                GStock.SaveChanges();
                            }
                        }
                }
                catch (Exception e)
                {
                    Methods.DealWithException(e);
                }
            }
    

    2-加载并更新类别Y(由frmClient表单' s调用)

    public static void UpdateCategorie(ModeleContainer GStock, Modele.Category Category)
            {
                try
                {
                        using (frmCategorie frmCategorie = new frmCategorie(GStock, Category ))
                        {
                            if (frmCategorie.ShowDialog() == DialogResult.OK)
                            {
                                // CategorieBindingSource is a public BindingSource
                                frmCategorie.CategorieBindingSource.EndEdit();
                                GStock.SaveChanges();
                            }
                            else
                                GStock.UndoDbContext();
                        }
                }
                catch (Exception e)
                {
                    Methods.DealWithException(e);
                }
            }
    

    3- GStock是所有表单的共享DbContext,用于跟踪更改

0 个答案:

没有答案