LINQSelectFirst嗨,我有这个linq代码varfp=lnq.attaches.First(a=>a.sysid==sysid).name;分析时会生成如下t-sqlSELECTTOP(1)[t0].[sysid],[t0].[name],[t0].[att_size],[t0].[cid],[t0.[flags],[t0].[contents]FROM[lntmuser].[attach]AS[t0]在我看来,它像select*一样返回,这将导致查询执行表扫描而不是使用一个索引。表现不佳。我怎样才能只选择名称列,如:SELECTTOP(1)[t0].[name]FROM[lntmuser].[attach]AS[t0]提前致谢)[t0].[name]FROM[lntmuser].[attach]AS[t0]WHERE[t0].[sysid]=@p0在使用First()之前命名属性的项目:varfp=lnq.attaches.Where(a=>a.sysid==sysid).Select(a=>a.name).First();这不会改变索引的使用-因为你的Where子句负责(在你的初始查询中你将lambda传递给First()。两个查询都受益于名称列上的索引,第二个查询只是更快,因为只有一个列以上就是C#学习教程:LINQ选型第一分享的全部内容,如果对你有用,还需要了解更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,转载请注明出处:
