【发布时间】:2017-06-20 12:30:38
【问题描述】:
我目前正在运行以下查询:
var results = from c in _context.Cs
join a in _context.Ca on c.Id equals a.CId
where c.Status == "A"
where c.CtId == ctId
where c.FY == fYear
where (a.PMId == lUserId || a.TLId == lInUserId)
select new { c.Id, c.T, c.C, c.S } into x
group x by new {x.Id, x.T, x.C, x.S} into g
orderby g.Key.T, g.Key.C, g.Key.S
select new { Id = g.Key.Id, T = g.Key.T, C = g.Key.C, S = g.Key.S}
现在我需要使where (a.PMId == lUserId || a.TLId == lInUserId) 行以 lUserId != 0 为条件(如果不是 0 则使用它,如果为 0 则忽略它)。
通常,我会声明变量results,然后在 if 语句中设置它,但我不知道如何定义这个数据结构。它显示为被定义为:
IQueryble<'a>
'a is new { int Id, string T, string C, string S}
最好的方法是什么?
【问题讨论】:
标签: c# .net linq-to-entities iqueryable anonymous-types