Linq常用
1、左关联查询
var lst = from m in db.信息
join d in db.明细信息
on m.单号 equals d.单号 into mi
from dt in mi.DefaultIfEmpty() //dt标示右表
where m.单号 == "2014" && dt.编码.StartsWith("1")
select new
{
单号 = m.单号,
版本 = m.版本,
编码 = dt.编码
};
2、动态拼接where查询语句
var lst = from m in db.信息
join d in db.明细信息
on m.单号 equals d.单号 into mi
from dt in mi.DefaultIfEmpty() //dt标示右表
select new
{
单号 = m.单号,
版本 = m.版本,
编码 = dt.编码
};
lst = lst.Where(p => p.单号.Contains("11") || p.编码.Contains("11"));
var newList = lst.Select(p => new { p.单号, p.版本 }) //只使用左表数据作为查询结果
.Distinct().OrderBy(p => p.单号).Skip(0).Take(10).ToList();
3、in
from p in 信息
where (new string[] {"10","14"}).Contains(p.编码)
select p
4、not in
from p in 信息
where !(new string[] {"10","14"}).Contains(p.编码)
select p