感受一下.net中用 lambda与 linq 做数据集过滤的不同
lambda:
ids.Add( _hahahacontext .hahahamodel .FirstOrDefault( a => //lambda做过滤 a.name == "张宏伟" && a.age== 18 ) .id .ToString() );
linq:
ids.Add(( from r in _hahahacontext.hahahamodel // linq 做查询过滤 where (r.name == "张宏伟"&& r.age == 18) select r.id ).FirstOrDefault() .ToString() );
涉及到多表联查的时候,那真的是linq看起来更清晰,而lambda的话可能会把你搞乱。
比如:
viewModel.fields = new SelectList( _hahahacontext .hahahamodel1 .Where( a => _hahahacontext .hahahamodel2 .Where( // lambda 过滤和联查都是放到一起的,容易搞乱 b => a.REF_ENUMID == "-5136816235353979" && b.REF_ENUMID == "-5136816235353979" && a.STATE == "1" && a.PARENT_ID == b.ID //表关联 && b.SHOWVALUE != "欧洲" ) .Any() ) .Select(a => a.SHOWVALUE) .ToArray() .Prepend("") .Distinct() .ToList() .OrderBy(a => a.ToString()));
但是,linq 中可以用“ join ” 来联查,如同sql语句一样。
每周更新
作者:张宏伟同学
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误或有疑问,欢迎指正提出。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!
作者:张宏伟同学
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误或有疑问,欢迎指正提出。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!