Consulta Linq para devolver abuelo, padre y nieto según la propiedad de un nieto

Disculpas por el título torpe. Necesito consultar una colección y devolver el abuelo, el padre y el nieto en función de la propiedad de un nieto.

Por ejemplo, con el objeto a continuación, quiero obtener la cotización, la tarifa (principal) y el plan (nieto) solo si una condición coincide con la identificación del plan.

public class Quote
{
    public int Id { get; set; }
    public string Type { get; set; }
    public string ParentType { get; set; }
    public decimal ValueMax { get; set; }
    public virtual ICollection<Rate> Rates { get; set; }
}

public class Rate
{
    public int Id { get; set; }
    public decimal ValueMax { get; set; }
    public ICollection<Plan> Plans { get; set; }
}

public class Plan

    public int Id { get; set; }
    public decimal Price { get; set; }
}

preguntado el 22 de mayo de 12 a las 20:05

Gracias Goric. Voy a revisar y mirar mis preguntas anteriores. -

1 Respuestas

Debería poder hacer algo como esto para obtener los planes que cumplan con cualquier criterio, junto con sus objetos principal y principal:

// results is an anonymous type with properties Quote, Rate, Plan
var results = from q in quotes
    from r in q.Rates
    from p in r.Plans
    where p.Id < 500 /* whatever criteria */
    select new 
    {
        Quote = q,
        Rate = r,
        Plan = p
    };

contestado el 22 de mayo de 12 a las 21:05

Gracias Goric. Eso es perfecto y mucho más simple de lo que imaginaba. Flotador izquierdo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.