3 votes

Linq avec union sur 3 tables

J'aime utiliser linq pour faire une union sur 3 tables. Je ne vois pas pourquoi quelque chose comme ce qui suit ne fonctionnerait pas :

var repdata = (from p in db.Table1
               select p)
                       .Union(from p in Table2
                        select p);

11voto

Jon Skeet Points 692016

Union ne fonctionne qu'avec le même type d'élément. Vous pourriez utiliser :

var data = db.Table1.Select(p => new { p.Value1, p.Value2 })
     .Union(db.Table2.Select(q => new { q.Value1, q.Value2 })
     .Union(db.Table3.Select(r => new { Value1 = r.Alias1, Value2 = r.Other }); 

Ici, le type anonyme sert de type commun sur lequel on projette les trois tables, de sorte que Union peut fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X