好的,这是一个愚蠢的问题。
据我了解,SQL View是一个基于SQL查询结果集的虚拟表。
根据我对SQL视图的有限了解,我假设从LINQ语句获得的结果集与SQL视图相同。
我错了吗?
我问的原因是我有一个程序使用foreach
循环来逐行读取LINQ查询的结果集。一位同事说我应该使用预先构建的SQL视图来加速程序。根据我的有限知识,我不熟悉SQL视图,我不确定它对我有什么帮助。
答案 0 :(得分:2)
您可以将SQL视图视为结果集,它可以组合多个表的值(通过连接,使用子选择等)。如果查询SQL视图,则会获得更好的性能。
Linq 2 SQL返回您的数据集并执行到对象的映射,因此您将获得IList。
Linq使用所谓的IQueryable接口。好处是当你在IQueryable表达式上点击iq.List(),iq.Array()方法时会执行IQueryable。
我实际上以一种特殊的方式在我的一个项目中使用它: - 创建了所需的IQueryable查询 - 然后根据用例我已经执行了iq.Count()或iq.List()。因为我可以避免使用calint iq.List()(因为我主要只知道计数)我得到了perf。增加 - 我没有必要大幅修改现有代码。