ASP.NET MVC 5中通过AsQueryable()和ToList()提取数据的区别

cu6pst1q  于 2023-03-20  发布在  .NET
关注(0)|答案(2)|浏览(181)

我想知道这两种方法之间的确切区别是什么--以及我们什么时候需要这两种方法中的一种?
我想提高我的查询技能。

but5z9lq

but5z9lq1#

AsQueryable()支持延迟执行。
ToList()支持立即执行。
AsQueryable()并不实际执行查询,而是创建查询树,供数据库提供程序稍后使用。
ToList()立即执行查询并检索所有结果。
AsQueryable()延迟查询的执行,并允许它稍后执行。
一般而言,它与性能有关
查看MSDOC的更多内容

d4so4syb

d4so4syb2#

根据我的理解:-

实施例1:

想象一下,你有一大篮水果,里面有很多不同种类的水果。AsQueryable就像是看着篮子,只挑出你想吃的水果。你不需要把篮子里所有的水果都拿出来,只需要拿出你想吃的水果。
ToList就像从篮子里取出所有水果并将它们放在柜台上,这样您就可以一次看到所有水果。如果您想计算自己有多少水果或想与他人分享,这将非常有用。
因此,如果你只想吃某些水果,你可以使用AsQueryable来挑选你想吃的水果。但是如果你想看到你所有的水果,你可以使用ToList把它们都拿出来放在柜台上。

示例2:

想象一下,你有一个大盒子,里面有很多玩具。你想一次拿出一个玩具来玩。AsQueryable就像是在盒子里面偷看,看看你接下来想玩哪个玩具。它不会一次拿出所有的玩具,只是你想要的那个。
ToList就像把整盒玩具倒在地板上,这样你就可以一次看到所有的玩具。
AsQueryable更快,因为它只在你需要的时候取出你需要的玩具。ToList一次取出所有的玩具,如果你有很多玩具,这可能会很慢。
所以,AsQueryable就像是聪明,只在你需要的时候才把你需要的东西拿出来; ToList就像是凌乱,一次把所有东西都拿出来。

相关问题