Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En EF-modell lagrar information om hur programklasser och egenskaper mappas till databastabeller och kolumner. Det finns två huvudsakliga sätt att skapa en EF-modell:
Använda Code First: Utvecklaren skriver kod för att ange modellen. EF genererar modeller och mappningar vid körning baserat på entitetsklasser och ytterligare modellkonfiguration som tillhandahålls av utvecklaren.
Använda EF Designer: Utvecklaren ritar rutor och rader för att ange modellen med hjälp av EF Designer. Den resulterande modellen lagras som XML i en fil med EDMX-tillägget. Programmets domänobjekt genereras vanligtvis automatiskt från den konceptuella modellen.
EF-arbetsflöden
Båda dessa metoder kan användas för att rikta in sig på en befintlig databas eller skapa en ny databas, vilket resulterar i 4 olika arbetsflöden. Ta reda på vilken som är bäst för dig:
| Jag vill bara skriva kod... | Jag vill använda en designer... | |
|---|---|---|
| Jag skapar en ny databas | Använd Kod först för att definiera din modell i kod och generera sedan en databas. | Använd Modell först för att definiera din modell med hjälp av rutor och linjer och generera sedan en databas. |
| Jag behöver komma åt en befintlig databas | Använd Code First för att skapa en kodbaserad modell som mappar till en befintlig databas. | Använd Database First för att skapa en rutor och linjemodell som mappar till en befintlig databas. |
Titta på videon: Vilket EF-arbetsflöde ska jag använda?
Den här korta videon förklarar skillnaderna och hur du hittar den som passar dig.
Presenterad av: Rowan Miller
Om du efter att ha tittat på videon fortfarande inte känner dig bekväm med att bestämma om du vill använda EF Designer eller Code First, lär dig båda!
En titt under huven
Oavsett om du använder Code First eller EF Designer har en EF-modell alltid flera komponenter:
Själva programmets domänobjekt eller entitetstyper. Detta kallas ofta objektskiktet
En konceptuell modell som består av domänspecifika entitetstyper och relationer som beskrivs med entitetsdatamodellen. Det här lagret refereras ofta till med bokstaven "C", för konceptuell.
En lagringsmodell som representerar tabeller, kolumner och relationer enligt definitionen i databasen. Det här lagret kallas ofta för senare "S" för lagring.
En mappning mellan konceptmodellen och databasschemat. Den här mappningen kallas ofta för "C-S"-mappning.
EF:s mappningsmotor utnyttjar "C-S"-mappningen för att transformera åtgärder mot entiteter – till exempel skapa, läsa, uppdatera och ta bort – till motsvarande åtgärder mot tabeller i databasen.
Mappningen mellan den konceptuella modellen och programmets objekt kallas ofta för "O-C"-mappning. Jämfört med "C-S"-mappningen är "O-C"-mappning implicit och en-till-en: entiteter, egenskaper och relationer som definierats i den konceptuella modellen krävs för att matcha formerna och typerna av .NET-objekten. Från EF4 och senare kan objektlagret bestå av enkla objekt med egenskaper utan några beroenden på EF. Dessa kallas vanligtvis Plain-Old CLR-objekt (POCO) och mappning av typer och egenskaper utförs baserat på namnmatchningskonventioner. Tidigare fanns det specifika begränsningar för objektskiktet i EF 3.5, till exempel entiteter som måste härledas från entityobject-klassen och behöva bära EF-attribut för att implementera "O-C"-mappningen.