4 votes

Comment effectuer une jointure à gauche dans linq pad ?

Comment puis-je faire en sorte que linq pad exécute ma jointure gauche comme indiqué ci-dessous ?

var query = 
            from s in db.CDBLogsHeaders
                    .OrderByDescending(g => g.LogDateTime)
                    from sc in db.StyleColors
                        .Where(stylecolor => stylecolor.id == (int?)s.StyleColorID)
                        .DefaultIfEmpty()
                    from c in db.StyleHeaders
                        .Where(styleHeader => styleHeader.id == (int?)s.StyleHeaderID)
                        .DefaultIfEmpty()
        select new 
        {
            CDBLogsHeaderId = s.Id,
            Merchandiser = c.Merchandiser,
            Material = s.Material,
            Season = s.Season,
            LogsHeaderLogType = s.LogType,
            PushFromTo = s.PushFromTo,
            LinePlan = s.LinePlan,
            QuikRefNumber = s.QuikRefNumber,
            PLMOrigin = s.PLM_Origin,
            SeasonOriginal = c.SeasonOriginal,
            SeasonCurrent = c.SeasonCurrent,
            StyleHeaderId = c.Id,
            StyleCode = c.StyleCode,
            StyleColorsColorCode = sc.ColorCode
        };

    query.Dump();

Le sql que linq pad crée s'exécute parfaitement dans Management Studio mais linq-pad n'affiche aucune ligne et donne cette erreur

InvalidOperationException : La valeur nulle ne peut pas être attribuée à un membre de type System.Int32 qui est un type de valeur non nul.

Comment puis-je faire fonctionner linqpad pour pouvoir jouer avec ?

3voto

batman 74 Points 136

Dans votre type anonyme, assurez-vous que vos ints retournent des ints.

Changement

StyleHeaderId = c.Id,

A

StyleHeaderId = (c.Id == null ? 0 : c.Id),

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