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