Entity Framework Handledning
Komma igång med Entity Framework
Sök…
Anmärkningar
Entity Framework (EF) är en objektrelational mapper (ORM) som gör det möjligt för .NET-utvecklare att arbeta med relationsdata med domänspecifika objekt. Det eliminerar behovet av de flesta av datatillgångskoden som utvecklare vanligtvis behöver skriva.
Entity Framework låter dig skapa en modell genom att skriva kod eller använda rutor och rader i EF Designer. Båda dessa metoder kan användas för att rikta in sig på en befintlig databas eller skapa en ny databas.
Entity Framework är den huvudsakliga ORM som Microsoft tillhandahåller för .NET Framework och Microsofts rekommenderade datatillgångsteknik.
versioner
Version | Utgivningsdatum |
---|---|
1,0 | 2008-08-11 |
4,0 | 2010-04-12 |
4,1 | 2011-04-12 |
4.1 Uppdatering 1 | 2011-07-25 |
4.3.1 | 2012-02-29 |
5,0 | 2012-08-11 |
6,0 | 2013/10/17 |
6,1 | 2014/03/17 |
Core 1.0 | 2016/06/27 |
Releaseinformation: https://msdn.microsoft.com/en-ca/data/jj574253.aspx
Använda enhetsramar från C # (kod först)
Kod låter dig först skapa dina enheter (klasser) utan att använda en GUI-designer eller en .edmx-fil. Den är uppkallad Code först, eftersom du kan skapa dina modeller först och Entity Framework kommer att skapa databas enligt avbildningar åt dig automatiskt. Eller så kan du också använda den här metoden med befintlig databas, som kallas kod först med befintlig databas. Om du till exempel vill att en tabell ska innehålla en lista över planeter:
public class Planet
{
public string Name { get; set; }
public decimal AverageDistanceFromSun { get; set; }
}
Skapa nu din kontext som är bron mellan dina entitetsklasser och databasen. Ge det en eller flera DbSet<>
:
using System.Data.Entity;
public class PlanetContext : DbContext
{
public DbSet<Planet> Planets { get; set; }
}
Vi kan använda detta genom att göra följande:
using(var context = new PlanetContext())
{
var jupiter = new Planet
{
Name = "Jupiter",
AverageDistanceFromSun = 778.5
};
context.Planets.Add(jupiter);
context.SaveChanges();
}
I det här exemplet skapar vi en ny Planet
med egenskapen Name
med värdet "Jupiter"
och egenskapen AverageDistanceFromSun
med värdet 778.5
Vi kan sedan lägga till denna Planet
i kontexten genom att använda DbSet
's Add()
metod och begå våra ändringar i databasen med hjälp av SaveChanges()
metoden.
Eller så kan vi hämta rader från databasen:
using(var context = new PlanetContext())
{
var jupiter = context.Planets.Single(p => p.Name == "Jupiter");
Console.WriteLine($"Jupiter is {jupiter.AverageDistanceFromSun} million km from the sun.");
}
Installera enhetsramverket NuGet-paketet
Öppna fönstret Solution Explorer i din Visual Studio, högerklicka sedan på ditt projekt och välj Hantera NuGet-paket på menyn:
EntityFramework
i fönstret som öppnas i sökrutan längst upp till höger.
Eller om du använder Visual Studio 2015 ser du något liknande:
Klicka sedan på Installera.
Vi kan också installera enhetsramar med pakethanterarkonsolen. För att göra det måste du först öppna den med hjälp av Verktyg-menyn -> NuGet Package Manager -> Package Manager Console och ange detta:
Install-Package EntityFramework
Detta kommer att installera Entity Framework och lägga automatiskt till en referens till enheten i ditt projekt.
Vad är enhetens ramverk?
Att skriva och hantera ADO.Net-kod för datatillgång är ett tråkigt och monotont jobb. Microsoft har tillhandahållit ett O / RM-ramverk som heter "Entity Framework" för att automatisera databasrelaterade aktiviteter för din applikation.
Enhetsram är ett objekt / O / RM-ramverk. Det är en förbättring av ADO.NET som ger utvecklare en automatiserad mekanism för åtkomst till och lagring av data i databasen.
Vad är O / RM?
ORM är ett verktyg för att lagra data från domänobjekt till den relationsdatabas som MS SQL Server på ett automatiserat sätt utan mycket programmering. O / RM innehåller tre huvuddelar:
- Domänklassobjekt
- Relationsdatabasobjekt
- Kartlägga information om hur domänobjekt kartlägger till relationsdatabasobjekt ( ex tabeller, vyer och lagrade procedurer)
ORM tillåter oss att hålla vår databasdesign åtskild från vår domänklassdesign. Detta gör applikationen underhållbar och utdragbar. Det automatiserar också standard CRUD-operation (Skapa, läsa, uppdatera och radera) så att utvecklaren inte behöver skriva det manuellt.