考虑使用查询符号编写的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/