J'espère que ce sera une question plutôt simple pour tous ceux qui sont bons à Linq. J'ai du mal à trouver la bonne expression Linq pour ce qui suit. Je suis capable de pirater quelque chose pour obtenir les résultats, mais je suis sûr qu'il y a une façon propre et simple à Linq de le faire, je ne suis pas encore assez bon à Linq ...Expression Linq pour une collection filtrée de collections?
J'ai une base de données accessible à travers Entity Framework. Il a un certain nombre de tâches. Chaque tâche a une collection de TimeSegments. Les TimeSegments ont des propriétés Date et Employee. Ce que je veux, c'est être en mesure d'obtenir les tâches pour un certain employé et un certain mois et les délais pour chaque tâche pour ce même mois et l'employé.
Encore une fois, les tâches n'ont pas en elles-mêmes d'informations de mois ou de date, mais elles le font par les TimeSegments associés à chaque tâche.
très simplifiée il semble un peu comme ceci:
public class Model //Simplified representation of the Entity Framework model
{
public List<Task> Tasks { get; set; }
}
public class Task
{
public int Id { get; set; }
public List<TimeSegment> TimeSegments { get; set; }
public Customer Customer { get; set; }
}
public class TimeSegment
{
public int Id { get; set; }
public string Date { get; set; }
public Employee Employee { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
Alors, comment dois-je faire cela aussi simplement que possible avec LINQ? C'est à dire. tâches et timesegments associés pour un certain mois et un employé. Je voudrais aussi être en mesure de l'obtenir par le Client BTW ...
Cela semble fonctionner. Je pensais dans ce sens, mais je me sentais mal de commencer avec TimeSegments, je voulais commencer par les tâches. Mais peut-être que je ne suis pas habitué à la façon dont vous devez penser aux requêtes Linq comme vous le faites remarquer. Merci, je vais essayer ça. Pourriez-vous montrer comment étendre cette requête et obtenir les tâches pour un client particulier (voir la classe Task qui a une propriété Customer)? – Anders
Aussi: Puis-je obtenir le type de retour à une liste de tâches avec une liste de TimeSegments si je l'ai dans une méthode? J'ai essayé d'utiliser ToList(), mais le compilateur se plaint toujours que le type de retour ne correspond pas. Je veux retourner Liste ... –
Anders
@Anders: Voir ma question mise à jour. – Steven