P.....8
P.....8
#programowanie #aspnet #csharp #entityframework

Jest tu ktoś ogarniający dobrze asp.net'a?
Mam taki projekt: [[github]](https://github.com/MyPCIsBetter/aspnet-vnext-webapi-test)
Próbuję zrobić API do aplikacji. Zamiast danych z sql'a zwraca mi 502 bad gateway. Chodzi o ten adres konkretnie: http://localhost:58607/api/notes/suggested
Rzecz dzieje się konkretnie [[w tym controllerze]](https://github.com/MyPCIsBetter/aspnet-vnext-webapi-test/blob/master/src/ConsoleNotepad/Controllers/NotesController.cs) w funkcji GetSuggestedNotes().

Niby takie proste, a siedzę już nad tym drugi dzień ( ͡° ʖ̯ ͡°)
  • Najlepsze
  • Wszystkie komentarze
niepoprawnyhumanista
niepoprawnyhumanista
niepoprawnyhumanista
niepoprawnyhumanista
niepoprawnyhumanista
niepoprawnyhumanista
@Pietrek558: a widzisz, moze jakbys pokazał całą bazę, strukturę Twoich encji to moze bysmy cos wywnioskowali więcej :P Niemniej jednak, ciekawy problem.
cogito_x
cogito_x
@Pietrek558: a próbowałeś dać pełną ścieżkę w tym miejscu? --> [HttpGet("/api/notes/suggested", Name = "GetSuggested")]
P.....8
P.....8
@cogito_x: obawiam się że problem prawdopodobnie nie tkwi w controllerze jako takim, tylko po stronie entity frameworka. Jak zmienię:

db.Notes.Include(x => x.NoteTags).ThenInclude(x => x.Tag);
na samo

db.Notes
to wszystko śmiga, z tym że "NoteTags" nie jest wczytywany. A tak się składa że go potrzebuję.
P.....8
P.....8
Czyli innymi słowy: adres jest dobry, kod się wykonuje, żadnych błędów, ale zwraca mi 502 ( ͡° ʖ̯ ͡°)
niepoprawnyhumanista
niepoprawnyhumanista
zamien
return data

na:

return data.ToList();
niepoprawnyhumanista
niepoprawnyhumanista
niepoprawnyhumanista
niepoprawnyhumanista
@Pietrek558: w sumie widze ze juz to probowales chyba, ale moim zdaniem to moze być to.
Twoja zmienna 'dataToList' nie jest uzywana w ogole tak poza tym, wywal tą linie bo nie potrzebnie wyciagasz dane
niepoprawnyhumanista
niepoprawnyhumanista
@Pietrek558: i zamiast IEnumerable mozesz (a nawet powinieneś!) zwrócić normalnie IActionResult z tym ze dać

return Json(data.ToList())
P.....8
P.....8
@niepoprawnyhumanista: niestety, próbowałem już i nie działa. Co do tej 'dataToList' to rzecz jasna wiem że niepotrzebne, mam to po prostu żeby w debuggerze szybko sprawdzać jakie dane zostały pobrane ;)
niepoprawnyhumanista
niepoprawnyhumanista
@Pietrek558: sproboj jeszcze to co wyzej napisalem i tak czy owak wywolaj ToList() przed zwroceniem
P.....8
P.....8
P.....8
P.....8
@niepoprawnyhumanista: niestety, nie mam czegoś takiego w httpPlatform w web.config
P.....8
P.....8
@niepoprawnyhumanista: dobra, chyba działa. Użyłem innego serializera (Newtonsoft.Json) i ten całe szczęście zwrócił błąd. Chodziło o self referencing loop (nie bardzo wiem czemu tak, po teoretycznie nie powinno się to stać). No ale ten problem można było szybko rowiązać .

Dzięki za pomoc