Avatar billede __Allan__ Seniormester
08. oktober 2018 - 16:20 Der er 5 kommentarer

Gemme fx List<T> properties i SQL database

Jeg er lidt grøn i arbejdet med SQL, men er lykkes med at få sat en database op, som jeg har forbundet med mit C# projekt.

Det er også lykkes mig at lagre indtastning fra 2 input felter i en WPF applikation direkte til databasen.

Men nu er min plan at C# projektet skal indeholde klasser hvor nogle af properties er af typen List<T>.
Så længe der er tale om int, char, doubles som også kan vælges som felt-type når jeg danner tabellen i SQL-databasen, så er det lige til, men hvad gør jeg med mine List<T> ? - De typer kan jeg jo ikke oprette i databasen. Hvordan gemmer man typisk den slags ?

Håber i forstår hvad jeg mener, og kan hjælpe mig lidt på vej...
Avatar billede softspot Forsker
08. oktober 2018 - 17:01 #1
Du vil typisk lave en ny tabel, der kan indeholde de objekter, som listen indeholder (altså en relationstabel). Relationstabellen vil også have en fremmednøglen, som peger på den række i hovedtabellen, det pågældende relaterede objekt tilhører.

Dette gør sig gældende for relationer, hvor der er tale om et en-til-mange forhold mellem hovedtabellen og T . Du kan anvende samme princip for mange-til-mange relationer, men så skal du oprette en (relationel) tabel mellem hovedtabellen og T. Denne indeholder typisk 2 fremmednøgler, der hver især peger på primærnøglen i  hovedtabellen og T-tabellen.
Avatar billede acore Ekspert
08. oktober 2018 - 19:40 #2
Det kommer lidt an på, hvad du skal bruge det til i databasen.

Hvis du skal arbejde med data, så er ovenstående et sted t starte.

Hvis du ikke skal arbejde med data i databasen, men der alene er tale om save og restore af data, kan du også bruge "serialize", som C# understøtter. Her får du din List konverteret til en tekst-streng, som du så kn gemme og konvertere tilbage til List efter indlæsning.
Avatar billede __Allan__ Seniormester
08. oktober 2018 - 22:30 #3
Hej igen
#1: Puha... Det lyder som lidt af en mundfuld, for en nybegynder som mig, men må jo bare se at komme igang hvis jeg vil lære det...  ;-)
#2: Er stødt på begrebet serialization nogle gange i mine søgninger, så det vil jeg lige kigge nærmere på.

Tak for begge jeres svar, det gav jo lige lidt at læse op på i weekenden ;-)
Avatar billede acore Ekspert
09. oktober 2018 - 07:31 #4
Når weekenden kommer, så tag et kik i https://www.dotnetperls.com/serialize-list, hvor der er et eksempel.
Avatar billede __Allan__ Seniormester
09. oktober 2018 - 10:45 #5
#4: Cool... Tak for tippet. Det vil jeg helt sikkert kigge nærmere på!
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