LINQ版的SQL View?

时间:2015-02-04 18:45:23

标签: c# linq sql-view

好的,这是一个愚蠢的问题。

据我了解,SQL View是一个基于SQL查询结果集的虚拟表。

根据我对SQL视图的有限了解,我假设从LINQ语句获得的结果集与SQL视图相同。

我错了吗?

我问的原因是我有一个程序使用foreach循环来逐行读取LINQ查询的结果集。一位同事说我应该使用预先构建的SQL视图来加速程序。根据我的有限知识,我不熟悉SQL视图,我不确定它对我有什么帮助。

1 个答案:

答案 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。增加 - 我没有必要大幅修改现有代码。