我想知道这两种方法之间的确切区别是什么--以及我们什么时候需要这两种方法中的一种?我想提高我的查询技能。
but5z9lq1#
AsQueryable()支持延迟执行。ToList()支持立即执行。AsQueryable()并不实际执行查询,而是创建查询树,供数据库提供程序稍后使用。ToList()立即执行查询并检索所有结果。AsQueryable()延迟查询的执行,并允许它稍后执行。一般而言,它与性能有关查看MSDOC的更多内容
AsQueryable()
ToList()
d4so4syb2#
想象一下,你有一大篮水果,里面有很多不同种类的水果。AsQueryable就像是看着篮子,只挑出你想吃的水果。你不需要把篮子里所有的水果都拿出来,只需要拿出你想吃的水果。ToList就像从篮子里取出所有水果并将它们放在柜台上,这样您就可以一次看到所有水果。如果您想计算自己有多少水果或想与他人分享,这将非常有用。因此,如果你只想吃某些水果,你可以使用AsQueryable来挑选你想吃的水果。但是如果你想看到你所有的水果,你可以使用ToList把它们都拿出来放在柜台上。
想象一下,你有一个大盒子,里面有很多玩具。你想一次拿出一个玩具来玩。AsQueryable就像是在盒子里面偷看,看看你接下来想玩哪个玩具。它不会一次拿出所有的玩具,只是你想要的那个。ToList就像把整盒玩具倒在地板上,这样你就可以一次看到所有的玩具。AsQueryable更快,因为它只在你需要的时候取出你需要的玩具。ToList一次取出所有的玩具,如果你有很多玩具,这可能会很慢。所以,AsQueryable就像是聪明,只在你需要的时候才把你需要的东西拿出来; ToList就像是凌乱,一次把所有东西都拿出来。
2条答案
按热度按时间but5z9lq1#
AsQueryable()
支持延迟执行。ToList()
支持立即执行。AsQueryable()
并不实际执行查询,而是创建查询树,供数据库提供程序稍后使用。ToList()
立即执行查询并检索所有结果。AsQueryable()
延迟查询的执行,并允许它稍后执行。一般而言,它与性能有关
查看MSDOC的更多内容
d4so4syb2#
根据我的理解:-
实施例1:
想象一下,你有一大篮水果,里面有很多不同种类的水果。AsQueryable就像是看着篮子,只挑出你想吃的水果。你不需要把篮子里所有的水果都拿出来,只需要拿出你想吃的水果。
ToList就像从篮子里取出所有水果并将它们放在柜台上,这样您就可以一次看到所有水果。如果您想计算自己有多少水果或想与他人分享,这将非常有用。
因此,如果你只想吃某些水果,你可以使用AsQueryable来挑选你想吃的水果。但是如果你想看到你所有的水果,你可以使用ToList把它们都拿出来放在柜台上。
示例2:
想象一下,你有一个大盒子,里面有很多玩具。你想一次拿出一个玩具来玩。AsQueryable就像是在盒子里面偷看,看看你接下来想玩哪个玩具。它不会一次拿出所有的玩具,只是你想要的那个。
ToList就像把整盒玩具倒在地板上,这样你就可以一次看到所有的玩具。
AsQueryable更快,因为它只在你需要的时候取出你需要的玩具。ToList一次取出所有的玩具,如果你有很多玩具,这可能会很慢。
所以,AsQueryable就像是聪明,只在你需要的时候才把你需要的东西拿出来; ToList就像是凌乱,一次把所有东西都拿出来。