Datagridview不会更新

时间:2013-04-11 08:11:22

标签: winforms entity-framework datagridview objectcontext

我使用实体框架5处理Windows窗体。

我有一个datagridview来记录新的销售,还有一个保存按钮来保存对我的实体的更改。 但在保存实体之前,我创建了一些新的库存对象。我有另一个网格视图,它可以查看我的库存但只读它。

我的问题如下:

  • 我的数据库中的销售和库存已更新,但销售的gridview显示新销售额时,库存的gridview未更新以显示新库存
  • 如果在添加新销售时出现错误(例如插入数据库时​​出现外键错误),则在更正错误并重新点击保存后,销售会插入一次但是库存两次(或多次)因为我有错误信息)

我试图通过createobject方法创建我的股票,而不仅仅是使用新的关键字,但问题仍然存在。

这是我的saveButton点击代码

private void SaveButton_Click(object sender, EventArgs e)
    {
        try
        {
            var txnsGr = (IEnumerable<TransactionsGroupee>)this.achatsGroupeeBindingSource.DataSource;

            foreach (var txnGr in txnsGr)
                if (txnGr.EntityState == EntityState.Detached)
                    ge.TransactionsGroupees.AddObject(txnGr);

            var localTransactions = ge.ObjectStateManager.GetObjectStateEntries(EntityState.Added).Where(ent => ent.Entity is Transaction).Select(ent => ent.Entity as Transaction);
            var achats = localTransactions.Where(x => x.TransactionsGroupee.sens == (int)Sens.Achat);
            foreach (Transaction txn in achats)
            {
                for (int i = 0; i < txn.quantite; i++)
                {
                    Stock stock = ge.CreateObject<Stock>();
                    stock.Agence1 = agence;
                    stock.Transaction = txn;
                    ge.Stocks.AddObject(stock);
                }
            }
            ge.SaveChanges();
        }
        catch (Exception ex)
        {
            StringBuilder err = new StringBuilder(ex.Message);
            if (ex.InnerException != null)
                err.AppendLine().Append(ex.InnerException.Message);
            MessageBox.Show(err.ToString());
        }
    }

请注意我的销售(实际上来自主/详细配置中的两个网格视图)以某种方式分离,我必须首先将它们附加回来,但希望这与上述问题无关。

0 个答案:

没有答案