你好我对EF很新,并且在EF上尝试了一些例子。通常我在使用一个对象时没有任何问题,但真正让我感到惊讶的是,当你使用网格时,你如何使用它?来自devexpress的XtraGrid?
通常我使用绑定源将网格的数据源设置为上下文:
private void Form1_Load(object sender, EventArgs e)
{
using (var context = new BeygirDataModeliContainer())
{
beygirBindingSource.DataSource = context.BeygirSet;
}
}
如果更改网格并将事件设置为:
using (var context = new BeygirDataModeliContainer())
{
context.SaveChanges();
}
gridControl1.RefreshDataSource();
它根本不会更改或更新或实际对数据库执行任何操作。 这些例子可能已经关闭,但有一个教程可以帮助我继续使用EF与网格和模型集合吗?
问候。
答案 0 :(得分:0)
让您的实体上下文“活着”。每当它关闭时using
阻止Dispose
阻止。
using (var context = new BeygirDataModeliContainer())
{
beygirBindingSource.DataSource = context.BeygirSet;
}//context.Dispose() is call here
你应该尝试这样的事情。
BeygirDataModeliContainer context;
private void Form1_Load(object sender, EventArgs e)
{
context = new BeygirDataModeliContainer()
beygirBindingSource.DataSource = context.BeygirSet;
}
private void ApplyButton(object sender, EventArgs e)
{
context.SaveChanges();
}
private void CancelButton(object sender, EventArgs e)
{
context.Dispose();
context = new BeygirDataModeliContainer()
beygirBindingSource.DataSource = context.BeygirSet;
gridControl1.RefreshDataSource();
}