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 秒で読み込まれます。textbox、datetimepicker、spinbutton などの他のコントロールを接続するために BindingSource コントロールを使用します。

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

ロード時間を短縮するには?

4

2 に答える 2

2

まず、toList<ChequePay>IEnumerable<ChequePay>-に変更し、ToList()を削除します。これは、通常、ToListによってすべてのアイテムが実現される(つまり、フェッチされる)ためです。

于 2012-06-02T09:03:50.230 に答える
1

リチャード・ハリソン私はこの問題を抱えていて、それを解決できませんでした。100000 以上が 3 秒または 4 秒でロードされるため、主な問題は BindingSource であると思いますが、BindingSource を使用すると、レコードは 1 分でロードされます

于 2012-06-02T18:21:49.843 に答える