考虑使用查询表示法编写的这个LINQ表达式:
List<Person> pr = (from p in db.Persons
join e in db.PersonExceptions
on p.ID equals e.PersonID
where e.CreatedOn >= fromDate
orderby e.CreatedOn descending
select p)
.ToList();
问题:如何使用点表示法编写此LINQ表达式?
答案 0 :(得分:67)
像这样:
List<Person> pr = db.Persons
.Join(db.PersonExceptions,
p => p.ID,
e => e.PersonID,
(p, e) => new { p, e })
.Where(z => z.e.CreatedOn >= fromDate)
.OrderByDescending(z => z.e.CreatedOn)
.Select(z => z.p)
.ToList();
请注意如何引入新的匿名类型以向前传送p
和e
位。在规范中,执行此操作的查询运算符使用透明标识符来指示行为。