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语句一样。