使用网格使用实体框架保存,更新,删除数据

本文关键字:更新 数据 删除 框架 网格 实体 保存 | 更新日期: 2023-09-27 18:02:02

你好,我是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与网格和模型集合?

问候。

使用网格使用实体框架保存,更新,删除数据

保持你的实体Context "alive"。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();
}