Avatar billede dennism Nybegynder
25. april 2009 - 09:49 Der er 1 løsning

C#: Serializable: Circular reference

Vi bruger LINQ to SQL til at snakke med MSSQL databasen - naturligvis, fristes man næsten til at sige :) Vi arbejder bl.a. med tabellerne Tanks og Sensors, hvor Tanks har en én til mange relation med Sensors. Det betyder, at vi i de objekter LINQ laver, kan kalde tank.Sensors for at hente de sensorer, som har relation til den pågændende tank. Det er rigtig lækkert og nemt at arbejde med. Men jeg er nødt til at sætte typen "Tank" til Serializable, da vi bl.a. har en GetTanks metode på vores ASP.NET Web Service som returnerer en List<Tanks>. Dette giver os en exception, når vi kører metoden, da der opstår en circular reference - som der bl.a. er beskrevet her:
http://www.west-wind.com/Weblog/posts/147218.aspx

Som der står i overstående artikel, er man derfor nødt til at ændre associationerne mellem dataobjekterne i LINQ to SQL, så der kun er en intern relation mellem dem.

Det betyder, at man ikke kan hente en tanks sensorer med tank.Sensors på de klienter der bruger webservicen, hvilket er ret uheldigt :( Findes der en anden måde at løse dette på, eller er jeg nødt til også at lave en GetTankSensors(int tankId) metode på min webservice?
Avatar billede dennism Nybegynder
09. juni 2009 - 10:48 #1
.lukker
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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