实体框架核心很慢 - 我如何让它更快?

时间:2017-03-30 02:45:53

标签: c# database postgresql entity-framework-core

从数据库中检索记录并将其分配给对象。

private readonly ApplicationDbContext _context;
var itemsData = _context.Items;

for (int i = 0; i < itemsData.Count(); i++)
{
    _Response.Items.Add(new Models.Items
        {
            Name = itemsData.ToList()[i].Name,
            ....
            Created = (DateTime)itemsData.ToList()[i].Created,
            Updated = (DateTime)itemsData.ToList()[i].Updated
        });
}

注意:记录少于1000条,已经显而易见。

1 个答案:

答案 0 :(得分:5)

您在每次迭代时调用ToList,每次迭代都会对数据库执行SQL查询。这样做1000次,难怪它很慢。

只需拨打ToList一次,然后foreach结果:

var itemsData = _context.Items.ToList();

foreach (var item in itemsData)
{
    _Response.Items.Add(new Models.Items
    {
        Name = item .Name,
        ....
        Created = (DateTime)item.Created,
        Updated = (DateTime)item.Updated
    });
}
相关问题