1

我在我的项目中使用 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 控件来连接其他控件,例如文本框、日期时间选择器、旋转按钮和其他

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

如何减少加载时间?

4

2 回答 2

2

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

于 2012-06-02T09:03:50.230 回答
1

理查德哈里森我遇到了这个问题,我无法解决它我认为主要问题是 BindingSource,因为 100000 或更多在 3 或 4 秒内加载,但是当我使用 BindingSource 时,记录在 1 分钟内加载

于 2012-06-02T18:21:49.843 回答