07. januar 2010 - 14:56Der er
7 kommentarer og 1 løsning
Manuelt oprettet association i Entity Framework
Hvis jeg opretter en (entity framework) data model i VS2008 på baggrund af en eksisterende database, så kommer der fint associationer imellem alle de entiteter, hvor der i databasen er oprettet relationer i mellem tabellerne. Men hvordan opretter jeg en relation imellem to entiteter, der ikke findes i databasen i forvejen?
Antag at jeg har en i database/model med følgende to 2 tabeller/entiteter:
OrderLines tabellen indeholder et felt ArticleId, der indeholder en reference til Articles tabellens primær nøgle. Relationer er dog ikke lavet i databasen som et constraint (og databasen kan af tekniske årsager ikke ændres). Hvis associationen imellem de to tabeller var oprettet, så vil det være muligt for mig at køre kode som:
var MyOrderLine = GetOrderLinesById(1); var artName = MyOrderLine.Article.ArticleName; // her bruges relationen den ene vej
eller
var MyArticle = GetArticleById(1); var OrdersUsingArticle = MyArticles.OrderLines; // og her den anden vej
Jeg kan ikke finde ud af, hvorledes jeg laver en, her 1 - mange, relation imellem Articles og OrderLines.
Jeg har i EDM designeren forsøgt at vælge en entitet, right clicke og i pop-up menuen vælge Add -> Association. Herefter vælges hvilke tabeller der skal associeres imellem og multiplicity (1-1 eller 1-mange), men ingen steder kan jeg se, hvor man vælger hvilke felter der skal relateres imellem, dvs. her OrderLines.ArticleId <-> Articles.RecId. I "Mapping Details" ser det heller ikke ud til, at man efterfølgende kan vælge/mappe relationen. Jeg har forsøgt, men at søge på "Entity framework association" og lignende giver på den forkerte side af 800000 links.
Jeg fatter ikke hvorfor det skal være bøvlet - at lave relationer imellem to entiteter er da vel noget af det mest grundlæggende når man arbejder med en relations database.
Uden kommentarer i så lang tid tvivler jeg på at der når at komme noget overhovedet.
Uden at det formentlig bringer dig meget videre kan jeg sige, at det ikke er lykkedes mig at lave egentlige associationer selv - det tætteste jeg er kommet på er at lave egne properties på mine objekter.
Til dette er der vist kun at sige at vi i høj grad har noget at glæde os til i VS2010!
Ja, jeg så en demo/beskrivelse af EF i 2010 - og der kan man lave det jeg efterlyser. Jeg har også det her spørgsmål oppe op CodeProject, men der får jeg heller ikke noget svar. der er noget der tyder på, at det jeg søger slet ikke er understøttet i .NET3.5, men først bliver det i 4.0 (i følge en eller anden MS udvikler blok jeg faldt over.)
Jeg må bevæbne mig med lidt tålmodighed. Vi kan nok godt skifte til 2010 når den udkommer, men jeg tvivler stærkt på det gavnlige i at anvende et beta udviklingsværktøj til drift i vores afdeling...
Jeg lukker spørgsmålet. Dethar vist, sig at det ikke rigtigt kan lade sig gøre på den her side af VS2010
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.