当前位置 : 主页 > 网络推广 > seo >

linq – Enumerable.ToDictionary只检索它需要的东西吗?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在使用Enumerable.ToDictionary从 linq调用创建一个Dictionary: return (from term in dataContext.Terms where term.Name.StartsWith(text) select term).ToDictionary(t = t.TermID, t = t.Name); 该调用是否会获取每个术语的
我正在使用Enumerable.ToDictionary从 linq调用创建一个Dictionary:

return (from term in dataContext.Terms
        where term.Name.StartsWith(text)
        select term).ToDictionary(t => t.TermID, t => t.Name);

该调用是否会获取每个术语的全部内容,还是仅从我的数据提供者中检索TermID和Name字段?换句话说,如果我这样写它,我会保存自己的数据库流量:

return (from term in dataContext.Terms
        where term.Name.StartsWith(text)
        select new { term.TermID, term.Name }).ToDictionary(t => t.TermID, t => t.Name);
Enumerable.ToDictionary适用于IEnumerable对象.语句的第一部分“(来自…选择术语”)是一个IQueryable对象. Queryable将查看表达式并构建SQL语句.然后它将它转换为IEnumerable以传递给ToDictionary().

换句话说,是的,你的第二个版本会更有效率.

网友评论