我使用实体框架5处理Windows窗体。
我有一个datagridview来记录新的销售,还有一个保存按钮来保存对我的实体的更改。 但在保存实体之前,我创建了一些新的库存对象。我有另一个网格视图,它可以查看我的库存但只读它。
我的问题如下:
我试图通过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());
}
}
请注意我的销售(实际上来自主/详细配置中的两个网格视图)以某种方式分离,我必须首先将它们附加回来,但希望这与上述问题无关。