实体框架查询速度较慢,适用于小型结果集

本文关键字:适用于 小型 结果 框架 查询 速度 实体 | 更新日期: 2023-09-27 17:55:57

所以我有下面的EF查询,它从平面表中返回大约12,000条记录。 我使用的投影仅选择必要的字段(大约 15 个),然后将它们放入自定义类的列表中。 这需要将近 3 秒,对于 12,000 条记录来说,这似乎很长。 我尝试过用"read uncomitted"将整个事情包装在事务 scrope 中,我也尝试使用"AsNoTracking()"。 两者都没有任何区别。 有人知道为什么这方面的表现会如此糟糕吗?

List<InfoModel> results = new List<InfoModel>();
        using (InfoData data = new InfoData())
        {
             results = (from S in data.InfoRecords
                        select new
                        {
                            ...bunch of entity fields...
                        }).AsEnumerable().Select(x => new InfoModel()
                        {
                            ...bunch of model fields...
                        }).ToList();
        }

实体框架查询速度较慢,适用于小型结果集

这很难回答,因为有很多事情会影响你的网络,你的sqlserver或Windows服务器中其他请求的数量,你的模型,....

尽管有最新版本,但生成的查询的质量和实体框架的性能有了很大的提高,在速度方面远远低于其他人。您可以查看一些性能注意事项 https://msdn.microsoft.com/en-us/data/hh949853.aspx

速度很重要,3 秒对您来说太多了,可能我不会使用实体框架来检索这么多行,对我来说,当您只需要一些项目但不需要数千项时,如果速度很重要,实体框架很棒。

为了提高速度,请使用许多其他ORM,例如Dapper,Stackoverflow使用的ORM非常快。