Linq Zapytanie

NL
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:10
0

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

Kopiuj
 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

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

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

john_klamka
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 5 lat
  • Postów:177
1

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

Kopiuj
....Select(x => new { Prize = x.Sum(s => s.Prize), Date = x.Key })
NL
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:10
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

Kopiuj
      @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][]

john_klamka
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 5 lat
  • Postów:177
1

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

NL
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:10
0

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

O9
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:7
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)
*

edytowany 1x, ostatnio: orzeszek91
NL
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:10
0

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

john_klamka
jakiej pętli?? po co ci pętla w linq? o0
NL
Bo miałem tam kilka wartości i potrzebowałem wypisać wszystko.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.