Új hozzászólás Aktív témák

  • Zalanius

    tag

    válasz bandi0000 #8526 üzenetére

    Annyit tennék még hozzá, hogy ha az SQL változat jobban előtted van, akkor próbáld meg FK nélkül, minél olvasmányosabban felírni a LINQ-t. Vegyük az alábbit:

    SELECT stud.FirstMidName + ' ' + stud.LastName AS FullName, grp.Credits
    FROM dbo.Student AS stud
    JOIN
    (
    SELECT enroll.StudentId , SUM(crs.Credit) AS Credits
    FROM dbo.Enrollment AS enroll
    JOIN dbo.Course AS crs ON enroll.CourseId = crs.Id
    GROUP BY enroll.StudentId
    ) AS grp
    ON grp.StudentId = stud.Id;

    Ennek egy megoldása:

    var creditsByStudent = from sub in (from e in ent.Enrollments
    join c in ent.Courses on e.CourseId equals c.Id
    select new { e.StudentId, c.Credit })
    group sub by sub.StudentId into g
    join s in ent.Students on g.Key equals s.Id
    select new
    {
    FullName = s.FirstMidName + " " + s.LastName,
    Credits = g.Sum(x => x.Credit)
    };

    --= Zalán =--

Új hozzászólás Aktív témák