Linq Zapytanie

0

Witam, chcę sobie przełożyć zapytanie sql

 select Sum(HisPrize),HisDate from dbo.ToDoHistries  group by HisDate

Wykombinowałem coś takiego, ale nie działa tak jak powinno pokazuje tylko liczbę, ale bez daty

 @Model.GroupBy(t => t.Date).Select(t => t.Sum(s => s.Prize)).FirstOrDefault()

Byłbym wdzięczny jak by mnie ktoś naprowadził

1

w metodzie Select() możesz sobie stworzyć nowy obiekt anonimowy z dwoma polami

....Select(x => new { Prize = x.Sum(s => s.Prize), Date = x.Key })
0
    @Model.GroupBy(t => t.Date).Select(t => new  {Prize = t.Sum(s => s.Prize), Date = t.Key}).FirstOrDefault()

Niby działa, ale pokazuje mi tylko 2 elementy, ale nie wszystkie

      @Model.GroupBy(t => t.Date).Select(t => new  {Prize = t.Sum(s => s.Prize), Date = t.Key}).toList()

a tak nie działa bo mam błąd <>f__AnonymousType4`2[System.Decimal,System.String][]

1

Poczytaj o metodzie FirstOrDefault(), to będziesz wiedział "czemu nie działa".

0

To mógłbyś podpowiedzieć jak powinienem to napisać bo już nie mam pomysłu?

1

popróbuj sobie, daj .toList() wstaw brejk pojta (breakpointa) i najedź myszką i zobacz co się ukrywa - to chyba najprostszy sposób żeby zrozumieć linq... i z reszta wiele innych rzeczy. ja do dziś mam żal że mi na uczelni nie powiedzieli co to debugowanie, bo przy tym wszystko idzie miliard razy szybciej. widziałem nawet fajny filmik na jotube, poszukaj tam o debugowaniu, 5 minut poswiecisz, a nauka przyjdzie w mgnieniu oka
*.firstorDefault bierze po prostu pierwszy wynik (a jak nie ma takeigo to daje nulla)
*

0

Dobra dzięki chłopaki za pomoc, już sobie poradziłem brakowało mi pętli ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1