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:
Articles:
- RecId : Int32 // Primary Key
- ArticleName
-....
OrderLines:
- RecId : Int32 // Primary key
- ArticleId : Int32
- ....
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.