一个Linq效率(智能程度)的测试

简介:

今天做了一次Linq的测试,代码如下:

            DataClasses1DataContext db =  new DataClasses1DataContext();
            var a = from blog  in db.Blogs
                    where blog.Channel == db.Channels.Single<Channel>(channel => channel.Title == "生活频道")
                          && blog.BlogClass == db.BlogClasses.Single<BlogClass>(c => c.Title == "默契")
                    select blog;
             this.Title = a.Count<Blog>().ToString();

这是个较为复杂的查询,包含两个跨表联合,更重要的是,最终需要的是Count,而并不是整个Blog列表,考验的是Linq的智能程度。

用Sql profile分析,得到对应的SQL是:

exec sp_executesql N ' SELECT COUNT(*) AS [value]
FROM [dbo].[Blog] AS [t0]
WHERE ([t0].[ChannelID] = ((
    SELECT [t1].[ChannelID]
    FROM [dbo].[Channel] AS [t1]
    WHERE [t1].[Title] = @p0
    ))) AND ([t0].[BlogClassID] = ((
    SELECT [t2].[BlogClassID]
    FROM [dbo].[BlogClass] AS [t2]
    WHERE [t2].[Title] = @p1
    )))
', N ' @p0 nvarchar(4),@p1 nvarchar(2) '@p0  = N ' 生活频道 '@p1  = N ' 默契 '

从上面的SQL可以看出,Linq对代码的分析相当到位,最终着眼于Count,这应该也是得益于Lazy Load。而多表联合查询(对于Channel表和BlogClass表)也做得相当好。从这一个查询应该可以说:Linq的智能度已经相当高了,Linq已经远远超出了傻乎乎拼SQL的水平,值得一试!

鸡蛋里面挑骨头的是,BlogClass 其实和Channel有外键联系的,其实有了BlogClass的限制,Channel就可以不需要了,这是代码中故意加入的一个小Bug,可惜Linq没有自动处理这个Bug的能力,还是进行了两次查询,是不是期望太高了?呵呵。

本文转自冬冬博客园博客,原文链接:http://www.cnblogs.com/yuandong/archive/2007/07/06/807834.html ,如需转载请自行联系原作者
相关文章
|
16天前
|
数据采集 人工智能 自动驾驶
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
VSI-Bench是由李飞飞和谢赛宁团队推出的视觉空间智能基准测试集,旨在评估多模态大型语言模型(MLLMs)在空间认知和理解方面的能力。该基准测试集包含超过5000个问题-答案对,覆盖近290个真实室内场景视频,涉及多种环境,能够系统地测试和提高MLLMs在视觉空间智能方面的表现。
59 16
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
智能化软件测试:AI驱动的自动化测试策略与实践####
本文深入探讨了人工智能(AI)在软件测试领域的创新应用,通过分析AI技术如何优化测试流程、提升测试效率及质量,阐述了智能化软件测试的核心价值。文章首先概述了传统软件测试面临的挑战,随后详细介绍了AI驱动的自动化测试工具与框架,包括自然语言处理(NLP)、机器学习(ML)算法在缺陷预测、测试用例生成及自动化回归测试中的应用实例。最后,文章展望了智能化软件测试的未来发展趋势,强调了持续学习与适应能力对于保持测试策略有效性的重要性。 ####
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试的未来之路:自动化与智能化的融合之旅
随着技术的飞速发展,软件测试领域正经历着一场革命。传统的手动测试方法逐渐让位于更加高效、智能的自动化测试策略。本文将探讨自动化测试工具的演进,以及人工智能如何赋能未来的软件测试实践,提升测试效率和准确性。我们将通过实例分析,了解自动化测试工具的现状,探索AI技术在测试中的应用,并展望未来软件测试的趋势。
63 2
|
5月前
|
机器学习/深度学习 边缘计算 人工智能
软件测试的演化之路:从手动到智能化
【8月更文挑战第6天】在数字化浪潮不断推进的今天,软件测试作为保障软件质量的重要环节,经历了从原始的手动测试到现在的智能化测试的转变。本文将探讨这一演变过程,分析其背后的驱动力和未来趋势,以及这些变化给软件产业带来的深远影响。
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试的未来:自动化与智能化的融合
随着科技的发展,软件测试领域正在经历一场革命。传统的手动测试方法正逐渐被自动化和智能化技术所取代。本文将探讨这一趋势如何影响软件测试的未来,以及它为提高软件质量和开发效率带来的机遇。
|
5月前
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
79 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
探索软件测试的未来:自动化与智能化的交汇点
随着技术的迅猛发展,软件测试领域正站在一个崭新的十字路口。本文将深入探讨自动化测试和人工智能(AI)如何共同塑造软件测试的未来,提升测试效率与准确性。通过分析当前趋势和未来预测,我们将揭示这些技术如何影响测试策略、工具选择以及质量保证流程,进而推动软件开发的整体进步。
81 1
|
6月前
|
人工智能 运维 自然语言处理
操作系统智能助手OS Copilot体验与测试结果
OS Copilot是基于大模型构建的操作系统智能助手,支持命令行自然语言问答、辅助命令执行、阿里云CLI调用、系统运维和调优等功能,帮助您更好地使用Alibaba Cloud Linux,提高Alibaba Cloud Linux的使用效率。
操作系统智能助手OS Copilot体验与测试结果
|
5月前
|
机器学习/深度学习 人工智能 数据挖掘
探索自动化测试的边界:从脚本到智能
在软件测试领域,自动化测试一直是提高测试效率与质量的重要工具。随着技术的发展,自动化测试也在不断进化,从简单的脚本录制回放,到现在结合人工智能的智能测试。本文将探讨自动化测试的发展路径,以及如何通过智能化提升测试的深度和广度,同时分析面临的挑战和未来的可能性。
|
6月前
|
机器学习/深度学习 人工智能 供应链
探索自动化测试的边界:从脚本到智能
在软件质量保障的竞技场上,自动化测试以其高效、一致性和可重复性的特点,成为提升开发流程效率的关键工具。本文将深入自动化测试的核心,探讨它如何从简单的脚本化任务,演变为一个集成了机器学习、人工智能和持续集成/持续部署(CI/CD)的复合型解决方案。我们将一起见证自动化测试如何突破传统边界,实现从线性脚本到自适应智能体的飞跃,并在此过程中重塑软件开发的未来。