Obecny czas: 2010-09-05, 12:55
Zaloguj się

[C#,WPF]Zapytania przy użyciu Entity Framework

Jak w nazwie... Wszystko o programowaniu pod tę platformę. Programowanie.

Moderatorzy: J.Admin, ModTeam

Postprzez gotan06 » 2010-05-27, 16:51

Pracuję w tej chwili nad aplikacją w WPF, która opiera się w dużym stopniu na bazie danych. Korzystam z Entity Framework, ale mam problem aby skonstruować zapytanie, które pobierze dane z wielu tabel.

Dane pobieram w ten sposób:
Kod: Zaznacz wszystko
PhotoGalleryDatabaseEntities db = new PhotoGalleryDatabaseEntities();
var fotos = from f in db.Photos select f;
lstViewPhotos.ItemsSource = fotos;

Jak zauważycie pewnie po nazwach zmiennych tworzona przeze mnie aplikacja ma służyć do zarządzania zdjęciami. Mam dwie tabele Photos (gdzie przetrzymuje informacje o zdjeciach) i Category (ma służyć do grupowanie zdjęć w określone kategorie). W tabeli Photos mam pole CategoryId, które ma pozwalać na przypisanie zdjęcia do określonej kategorii. I mam problem teraz z tym aby pobrać informację o zdjęciu wraz z informacją o kategorii, do której jest przypisane.

Próbowałem zrobić coś takiego:
Kod: Zaznacz wszystko
var fotos = from f in db.Photos join c in db.Category on f.CategoryId equals c.id select f;


Jednak powyższy kod mi nie działa, nawet się nie kompiluje :/
Mam nadzieję, że pomożecie :)

PS. Wszelkie linki do artykułów, ebooków, itp na temat EF mile widziane :)
Pozdrawiam
gotan06
 
Posty: 19
Rejestracja: 2008-01-14, 16:25

Postprzez pejs » 2010-05-31, 06:58

Generalnie join nie ma tu zastosowania - chyba, że masz zdjęcia bez podpiętej kategorii - w innym przypadku to zapytanie jest nadmiarowe. A jaki błąd Ci wyskakuje?
You know who you are, don't betray yourself.
Awatar użytkownika
pejs
 
Posty: 2048
Rejestracja: 2006-03-22, 20:03
Miejscowość: Gdańsk

Postprzez gotan06 » 2010-06-07, 16:07

Błąd mam taki:
The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'Join'.

Czyli na moje oko nie ma takiego wyrażenia jak 'join', jest tylko funkcja 'Join', ale coś kiedyś takiego robiłem w ASP.NET i mi działało.

A dlaczego zapytanie jest nadmiarowe?

Chcę wyświetlić informacje o zdjęciu, ale także o kategorii, w której się znajduje. A te informacje znajdują się już w innej tabeli.
gotan06
 
Posty: 19
Rejestracja: 2008-01-14, 16:25

Postprzez pejs » 2010-06-08, 08:21

Mógłbyś wrzucić strukturę bazy? Nadmiarowe byłoby wtedy gdybyś chciał wyświetlać zawartość zdjęć jednej kategorii - ale to tak na boku.
You know who you are, don't betray yourself.
Awatar użytkownika
pejs
 
Posty: 2048
Rejestracja: 2006-03-22, 20:03
Miejscowość: Gdańsk

Postprzez pejs » 2010-06-08, 08:22

I jeszcze może jaki kod wygenerował framework dla edmx-a.
You know who you are, don't betray yourself.
Awatar użytkownika
pejs
 
Posty: 2048
Rejestracja: 2006-03-22, 20:03
Miejscowość: Gdańsk


Wróć do .NET

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość

cron

Kto jest na forum

Na forum jest 1 użytkownik :: 0 zarejestrowanych, 0 ukrytych i 1 gości (oparte na użytkownikach aktywnych przez ostatnie 5 minut)
Najwięcej użytkowników (140) było obecnych 2007-12-12, 06:19

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość

Login Form