使用BindingSource加载数据非常慢

时间:2012-06-02 08:28:55

标签: c# entity-framework bindingsource

我在我的项目中使用Entity Framework和MS Sql Server 2008加载100000条记录

此记录在3秒内加载 当我使用下面的代码时

class BLChequePay
{
    ....

    public List<ChequePay> GetAll()
    {
        var Context = new AccountingEntities();
        var Che = Context.ChequePays;
        return Che.ToList();
    }
}

private void ChequePayForm_Load(object sender, EventArgs e)
{
  radGridView1.DataSource = ChequePays.GetAll();
}

但是当我使用BindingSource时,他们会在50秒内加载。 我使用BindingSource控件来连接其他控件,如textbox,datetimepicker,spinbutton和其他

private void ChequePayForm_Load(object sender, EventArgs e)
{
  chequePayBindingSource.DataSource = ChequPays.GetAll();
}

如何减少加载时间?

2 个答案:

答案 0 :(得分:2)

首先将List<ChequePay>更改为IEnumerable<ChequePay> - 并删除ToList(),因为ToList通常会导致所有项目被实现(即获取)。

答案 1 :(得分:1)

richard-harrison我遇到了这个问题我无法解决它我认为主要的问题是BindingSource,因为在3或4秒内加载100000或更多,但是当我使用BindingSource时,记录会在1分钟内加载