Pregunta

Considere esta expresión LINQ escrito usando el sistema de consulta:

 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();

Pregunta:? ¿cómo escribir esta expresión LINQ usando la notación de punto

¿Fue útil?

Solución

De esta manera:

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();

Tenga en cuenta cómo se introduce un nuevo tipo anónimo para realizar tanto la p y los bits e hacia adelante. En la especificación, operadores de consulta que hacen uso de este identificadores transparentes para indicar el comportamiento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top