lambda:
ids.Add(
_hahahacontext
.hahahamodel
.FirstOrDefault(
a => //lambda做过滤
a.name == "张宏伟"
&& a.age==
)
.id
.ToString()
);
linq:
ids.Add((
from r in _hahahacontext.hahahamodel // linq 做查询过滤
where (r.name == "张宏伟"&& r.age == )
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 == ""
&& a.PARENT_ID == b.ID //表关联
&& b.SHOWVALUE != "欧洲"
)
.Any()
)
.Select(a => a.SHOWVALUE)
.ToArray()
.Prepend("")
.Distinct()
.ToList()
.OrderBy(a => a.ToString()));
但是,linq 中可以用“ join ” 来联查,如同sql语句一样。