Mon exemple de la vie réelle est trop obscure pour expliquer, mais cela est assez bonne approximation une de ce que je suis en train de faire ...Besoin d'aide avec la requête LINQ qui joint deux tables contenant des événements périodiques
Month
Table a colonnes: Id
, Name
Table Holiday
a colonnes: Id
, MonthId
, DayOfMonth
, Name
Table Appointment
a colonnes:Comment puis-je produire une liste d'événements uniques (vacances et rendez-vous) classés par mois et jour du mois?
résultats Exemples:
Month Holiday Day Appointment Day
----------------------------------------
Nov Fly to NYC 25
Nov T-Giving 26
Nov Fly home 29
Dec Xmas 25
Alors, je veux des colonnes séparées pour des vacances et des événements, mais je veux qu'ils soient tous uniques et classés par ordre de mois jour.
Voici ce que j'ai jusqu'à présent (voir commentaires en ligne):
var events =
from
m in GetMonths()
join
h in GetHolidays()
on m.Id equals h.MonthId
join
a in GetAppointments()
on m.Id equals a.MonthId
where
//something that narrows all combinations of events to only unique events
orderby
m.Id,
// something that interleaves h.DayOfMonth with m.DayOfMonth
select
new
{
Month = m.Name,
Holiday = h.Name,
HolidayDay = h.DayOfMonth,
Appointment = a.Description,
AppointmentDay = a.DayOfMonth
};
Pouvez-vous définir ce que vous entendez par "unique"? Avez-vous le même événement dans la table de rendez-vous plusieurs fois? Voulez-vous seulement un rendez-vous/vacances par jour? – ristonj
Par unique, je veux dire un événement (vacances * ou * rendez-vous) par ligne et aucun événement ne se répète. – devuxer