linq to entites 写查询语句 如何像 sql 文那样拼串
我在网上开了一些文章,对于一些简单的linq 可以用expression来拼 ,但是仍然不知道复杂的如何来拼,难道真需要用那种极其复杂的繁琐的表达式树,一点点的拼起来吗?那不是噩梦么?
如下: var q = from tohos in orgUnbalance(start, end)
group tohos by new { tohos.NEWTIME.Year, Quarter = (tohos.NEWTIME.Month-1) /3 } into gs
select new StatisRet
{
DateTile = new Dates { Year = gs.Key.Year, Quarter = gs.Key.Quarter, },
Group = gs.GroupBy(c =>
(c.NEWTIME.Year - c.BIRTHDAY.Value.Year) / 10
).Select(d => new
{
Id = (int)d.Key >= 7 ? 7 : (int)d.Key,
Count = d.Sum(c => c.BALANCE)
}).GroupBy(c => c.Id).Select(d => new StatisLine
{
Id = (int)d.Key,
Count = (double)d.Sum(c => c.Count)
})
.OrderBy(n => n.Id)
};
orgUnbalance(start, end)是
protected IEnumerable<Unbalance> orgUnbalance(DateTime start, DateTime end)
{
return orgBalance(start, end, c => new PatientGroupId { CH_PATIENT_ID = c.AC_PATIENT_ID }).Join(_analysisEntity.PATIENT_TBL, m => m.PB_PATIENT_ID, n => n.PB_PATIENT_ID, (m, n) =>
new Unbalance { PB_PATIENT_ID = n.PB_PATIENT_ID, BIRTHDAY = n.BIRTHDAY, NEWTIME = m.NEWTIME, BALANCE = m.BALANCE });
}
请教一下各位大大,这两个个linq里面的那些条件,即lambda表达式如何根据条件去拼写?万分感激~~
分可以追加