Avatar billede ajaxnoob Nybegynder
16. november 2009 - 20:01 Der er 7 kommentarer og
1 løsning

LINQ TO SQL driller

Davs

Først, jeg ved ikke om dette er svært eller let, jeg har nok bare set mig blind på det, derfor har jeg valgt 30 point.

public IQueryable<Heste> AlleHesteUdfraId(int Id)
{
return db.Heste.Where(h => h.ID == Id);
}

public IQueryable<HesteSko> AlleHesteMedDisseSko()
{
var heste = AlleHesteUdfraId(5);

//Ok, der er her mit problem opstår. Lad os sige at "var heste" nu indholder 10 heste. Jeg skal finde alle de heste sko, de 10 heste bruger og returnere dem som HesteSko.

return hesteSko;
}

Jeg har prøvet med en foreach, hvilket jeg ikke kunne få til at virke.

Tak for at du gad læse om mit problem.
Avatar billede arne_v Ekspert
16. november 2009 - 20:38 #1
Den simple loesning maa vaere at:
- constructe en List<HesteSko>
- lave en foreach over heste
- for hver hest AddRange's hestesko til listen
Avatar billede softspot Forsker
16. november 2009 - 21:17 #2
Hvordan er heste og hestesko relateret til hinanden? Er der en fremmednøgle på hesten eller på skoen, eller er det en mange-til-mange relation?

Jeg ville forsøge med noget á la dette:

var hesteSko =
  from s in db.hestesko
  join h in heste on s.id equals h.hesteskoid
  select new HesteSko() {
    Id = s.id,
    Navn = s.Navn,
    Pris = s.Pris
  }

return hesteSko.AsQueryable();
Avatar billede ajaxnoob Nybegynder
16. november 2009 - 21:33 #3
Relationen er en til en.

Jeg er ret ny til LINQ, så have ikke lige tænkt på at bruge en join.

Det virker, tak.
Avatar billede ajaxnoob Nybegynder
16. november 2009 - 21:36 #4
Nu skal jeg bare finde ud af hvordan man dele de 30 point ud og lukker tråden...
Avatar billede softspot Forsker
16. november 2009 - 22:16 #5
Du kan da starte med at få et svar :)
Avatar billede softspot Forsker
16. november 2009 - 23:11 #6
Tak for point :-)
Avatar billede sirius Nybegynder
17. november 2009 - 12:00 #7
nu er er godt nok blevet svaret men mener da også at du kan bruge:
public IQueryable<HesteSko> AlleHesteMedDisseSko()
{
return AlleHesteUdfraId(5).SelectMany(h=>h.HesteSkoRelation);
}
Avatar billede janus_007 Nybegynder
17. november 2009 - 18:40 #8
sirius - > Kommer lidt an på om ajaxnoob har modelleret en relation :)

Ingen har spurgt? Ajaxnoob -> Har du modelleret en relation i modellen?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester