考虑使用查询符号编写的这个 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 表达式?
最佳答案
像这样:
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
位。在规范中,执行此操作的查询运算符使用透明标识符来指示行为。
关于c# - LINQ:等同于 JOIN 的点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1511833/