我有一种方法执行一些 linq 操作,该方法需要一分钟多的时间从 SQL 中获取 4,000 行并将它们放入对象列表中。我想要做的可以归结为:
- 从表中获取所有行
- 根据行字段将每一行转换为相应的对象
- 返回该对象的列表
换句话说,我有一个对象对应于我的数据库中的一行,我希望 linq 返回这些行所在的表中所有对象的列表。
我正在做的是这样的:
public List<Article> GetAllArticlesFromDB()
{
using (DBEntities le = new DBEntities(this._efConnectionString))
{
IQueryable<ARTICLE> x = from row in le.ARTICLE select row;
List<Article> llr = x.Select(r => new Article
{
ArticleNumber = r.ARTICLE_NUMBER,
ArticleTitle = r.TITLE,
}).ToList();
return llr;
}
}
麻烦的是,这个查询需要一分钟。只有两个字段,一个是 int,另一个是最大长度为 255 的字符串。一个简单的 SQL 查询可以在不到一秒的时间内完成。但是这个 linq 查询需要一分钟。我可以以某种方式优化它吗?