12. februar 2011 - 00:25Der er
2 kommentarer og 1 løsning
Hente data fra/geme data i flere tabelle med relationer imellem de forskellige tabeller
Hej Eksperter
Sidder og roder med en hjemmestrikker databse med 14 tabeller, hvor der er relationer rundt omkring mellem de forskellige tabeller.
Er så stødt ind i problemer på grund af mit ringe kendskab til SQL sprogets muligheder. Jeg vil f.eks. gerne trække data udfra databasen fra 3 tabeller, der er forbundet med hinanden via mange til en relationer.
Eks. Min Medlemskartotek tabel har en fremmed nøgle (nøglexId), der er primærnøgle i en Adresse Tabel. I Adresse tabellen er der en fremmede nøgle (nøgleyId), der er primærnøgle i en LandeKode Tabel.
Så hvad er SQL syntaksen for at gøre dette ???
Skal måske lige nævne, at jeg gerne vil bruge TableAdapters i Visual Studio til at huse de nødvendige SQL sætninger.
Vil også gerne bruge TableAdapters til at stå for Insert, Update og Delete af de forskellige tabeller. Kan det gøres smart her også i ét hug, eller skal man lægge data i de forskellige tabeller seperat ved brug af forskellige TableAdapters. Her tænker jeg selvfølgelig igen på flere end 2 tabeller og med relationer mellem tabellerne. Ved godt at det er meget nemt, at lægge data i 1 tabel ved brug af TableAdapters.
Entity Framework <- Den bruger jeg selv. NHibernate <- Kan sygt meget, og nok derfor den mest komplekse. Linq2Sql <- Super simple. SubSonic <- Super simple.
Jeg ser aldrig TableAdapters mere ... synes jeg hører .NET 2.0 til, men kan jo tage fejl.
Du kan ikke lave noget magisk insert med dem så vist jeg ved. Men de ORM ( Object Relation Mappers ) jeg har nævnt ovenfor kan ( er lidt i tvivl om de 2 sidte kan )
Men der kan du f.eks gøre.
User u = new User(); u.Name = "small64"; Address adr = new Address(); adr.SomeIngo = "jdasklds"; u.Addresses.Add(adr);
og langt ud ... alt efter relation levels etc.
Så har du en context ( kan du sammenligne med din database, da det er hvad den mapper til )
context.Users.Add(u);
Så sørger den selv for at gemme relations etc.
Håber du kan følge det ... du arbejder med din database ligesom collections i .NET.
Må med skam erkende, at jeg ikke fik sendt dig en kommentar i tidernes morgen til dit indlæg. Men jeg har været i ORM mode og kan se det vældig smarte i denne måde at angribe min problemstilling på. Så hvis du lige kan sende mig et svar, så kan jeg få givet dig dine velfortjente points.
Gør ikke så meget ... bare du vendte tilbage og det gjorde du nu.
TableAdapter er jeg faktisk ikke klar over om nogen bruger mere, jeg ville i hvert fald ikek gøre det med mindre jeg havde en god grund til det, og jeg aner ikke lige hvad der skulle være. Tror ORMe har overtaget hvad TableAdapter blev lavet til.
mvh
Synes godt om
Ny brugerNybegynder
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.