0

你好,我对 EF 很陌生,并且一直在尝试一些关于 EF 的示例。通常我在使用一个对象时没有任何问题,但真正让我感到奇怪的是,当与诸如 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 与网格和模型集合一起使用?

问候。

4

1 回答 1

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();
}
于 2013-03-04T15:39:38.283 回答