Je suis nouveau à LINQ alors excuses si c'est une réponse simple. Je suis en train de faire une JOIN SQL et ai le code suivant à partir d'exemples que j'ai vu sur le SO et ailleurs:LINQ à SQL Join
var query = from e in db.Events
join ec in db.EventCategories on e.ID equals ec.EventID
join c in db.Categories on ec.CategoryCode equals c.CategoryCode
join ep in db.EventParticipants on e.ID equals ep.EventID
join p in db.Participants on ep.ParticipantCode equals p.ParticipantCode
select new { e, ec, c, ep, p };
Cette exécute bien et quand je lance le débogueur je peux développer l'objet et de voir que la requête a été exécutée avec succès. Cependant, lorsque j'essaie d'exécuter query.ToList(), je ne peux pas convertir ceci en quelque chose d'utilisable car il indique que la liste retournée par query.ToList() est System.Collections.Generic.List.
Méthode 2: Sur la base de mes propres pensées, j'ai essayé de créer la structure suivante:
public struct CalendarItem
{
public Event e;
public EventCategory ec;
public Category c;
public EventParticipant ep;
public Participant p;
public CalendarItem(Event E, EventCategory EC, Category C, EventParticipant EP, Participant P)
{
e = E;
ec = EC;
c = C;
ep = EP;
p = P;
}
}
et modifier ensuite la commande LINQ à ce qui suit:
var query = from e in db.Events
join ec in db.EventCategories on e.ID equals ec.EventID
join c in db.Categories on ec.CategoryCode equals c.CategoryCode
join ep in db.EventParticipants on e.ID equals ep.EventID
join p in db.Participants on ep.ParticipantCode equals p.ParticipantCode
select new CalendarItem(e, ec, c, ep, p);
Dans Visual Studio ce contrôle out et ça me permet de compiler et tout a l'air génial (ie je peux boucler sur la liste de CalendarItems), mais j'ai une erreur d'exécution sur query.ToList(): Le membre 'e' n'a pas de traduction en SQL.
Merci! Cela a fonctionné parfaitement – Kyle