为什么使用Entity Framwork获取数据的速度很慢?

时间:2016-05-08 05:21:41

标签: c# entity-framework linq-to-entities

我正在使用C#和Entity Framework创建Windows窗体程序。我想从SQL数据库中获取数据并在获取数据后进行一些处理。

一切都很好,但即使数据很少,性能也太差,速度太慢。我的代码如下,我想知道我的代码有什么问题。

我搜索了很多,但没有找到任何帮助。

提前致谢

private readonly BarForooEntities1 _barforoosh = new BarForooEntities1();

public void Getdataforoosh()
{
    BindingSource b = new BindingSource();

    b.DataSource = (from m in _barforoosh.RadifsSendCenter
                    where m.Receive == false
                    select new
                           {
                               m.id_rec, m.Radifkolsal,
                               m.Dates, m.DateErsal,
                               m.TimeErsal, m.Karkhane,
                               m.Namekala, m.Vazn,
                               m.Bandal, m.Dobaskul,
                               m.OldYear, m.Sal,
                               m.del, m.edit, m.Daryaft,
                               m.Shobe, m.Greid, m.TedadBas, 
                               m.Rahgiry, m.Tozih, m.NoeShemsh, 
                               m.Metrazh, m.Keyfiat, m.Address,
                               m.City, m.Karbar, m.CodeKala,
                               m.CodeGoruh, m.CodeKG, m.CodeGreid,
                               m.Tel, m.ShenaseMeli, m.Sefaresh,
                               m.Tolid, m.Shenase, }).ToList();
    dataGridView1.DataSource = b;

    for (int i = 0; i < dataGridView1.RowCount; i++)
    {
        int c = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);

        var f = (from a in _barforoosh.RadifsSendCenter
                 where a.id_rec == c
                 select a).SingleOrDefault();
        f.Receive= true;
        _barforoosh.SaveChanges();
    }
}

1 个答案:

答案 0 :(得分:-1)

SaveChanges方法放在for循环之外:

for (int i = 0; i < dataGridView1.RowCount; i++)
{
}
_barforoosh.SaveChanges();