Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
CSAK EF5 – Az ezen az oldalon tárgyalt funkciók, API-k stb. az Entity Framework 5-ben jelentek meg. Ha korábbi verziót használ, az információk egy része vagy egésze nem érvényes.
Ez a videó és részletes útmutató bemutatja, hogyan használhat enumerálási típusokat az Entity Framework Code First használatával. Azt is bemutatja, hogyan használhat számokat LINQ-lekérdezésekben.
Ez az útmutató a Code First használatával hoz létre új adatbázist, de a Code First használatával leképezhet egy meglévő adatbázist.
Az Enum-támogatás az Entity Framework 5-ben lett bevezetve. Az új funkciók, például az enumok, a térbeli adattípusok és a táblaértékű függvények használatához a .NET-keretrendszer 4.5-ös verzióját kell megcéloznia. A Visual Studio 2012 alapértelmezés szerint a .NET 4.5-öt célozza meg.
Az Entity Frameworkben az enumerálás a következő alapul szolgáló típusokkal rendelkezhet: Bájt, Int16, Int32, Int64 vagy SByte.
A videó megtekintése
Ez a videó bemutatja, hogyan használhat enumerálási típusokat az Entity Framework Code First használatával. Azt is bemutatja, hogyan használhat számokat LINQ-lekérdezésekben.
Készítette: Julia Kornich
Előfeltételek
Az útmutató elvégzéséhez telepítve kell lennie a Visual Studio 2012, Ultimate, Premium, Professional vagy Web Express kiadásnak.
A projekt beállítása
- A Visual Studio 2012 megnyitása
- Mutasson a Fájl menü Új pontjára, majd kattintson a Project gombra
- A bal oldali panelen kattintson a Visual C# elemre, majd válassza a Konzolsablont
- Adja meg az EnumCodeFirst nevet a projekt neveként, és kattintson az OK gombra
Új modell definiálása a Code First használatával
A Code First fejlesztés során általában olyan .NET Framework osztályokat kell írnia, amelyek meghatározzák a fogalmi (tartományi) modellt. Az alábbi kód határozza meg a Részleg osztályt.
A kód a DepartmentNames enumerálást is meghatározza. Alapértelmezés szerint az enumerálás int típusú. A Részlegosztály Név tulajdonsága a DepartmentNames típusú.
Nyissa meg a Program.cs fájlt, és illessze be a következő osztálydefiníciókat.
public enum DepartmentNames
{
English,
Math,
Economics
}
public partial class Department
{
public int DepartmentID { get; set; }
public DepartmentNames Name { get; set; }
public decimal Budget { get; set; }
}
A DbContext származtatott típusának meghatározása
Az entitások definiálása mellett meg kell határoznia egy olyan osztályt, amely a DbContextből származik, és elérhetővé teszi a DbSet<TEntity> tulajdonságait. A DbSet<TEntity> tulajdonságai tudatják a környezettel, hogy mely típusokat szeretné belefoglalni a modellbe.
A DbContext származtatott típus egy példánya a futtatás során kezeli az entitásobjektumokat, amely magában foglalja az adatbázisokból származó adatokkal rendelkező objektumok feltöltését, a változáskövetést és az adatok adatbázisba való megőrzését.
A DbContext és a DbSet típusok az EntityFramework szerelvényben vannak definiálva. Ehhez a DLL-hez az EntityFramework NuGet-csomaggal fogunk hivatkozni.
- A Megoldáskezelőben kattintson a jobb gombbal a projekt nevére.
- Válassza a NuGet-csomagok kezelése...
- A NuGet-csomagok kezelése párbeszédpanelen válassza az Online lapot, és válassza az EntityFramework csomagot.
- Kattintson a Telepítés gombra
Vegye figyelembe, hogy az EntityFramework szerelvény mellett a Rendszer.ComponentModel.DataAnnotations és a System.Data.Entity szerelvényekre mutató hivatkozások is hozzáadódnak.
A Program.cs fájl tetején adja hozzá a következő using-direktívát:
using System.Data.Entity;
A Program.cs fájlban adja hozzá a kontextus definícióját.
public partial class EnumTestContext : DbContext
{
public DbSet<Department> Departments { get; set; }
}
Adatok megőrzése és lekérése
Nyissa meg a fő metódust definiáló Program.cs fájlt. Adja hozzá a következő kódot a Fő függvényhez. A kód egy új részlegobjektumot ad hozzá a környezethez. Ezután menti az adatokat. A kód egy LINQ-lekérdezést is végrehajt, amely egy részleget ad vissza, amelynek neve DepartmentNames.English.
using (var context = new EnumTestContext())
{
context.Departments.Add(new Department { Name = DepartmentNames.English });
context.SaveChanges();
var department = (from d in context.Departments
where d.Name == DepartmentNames.English
select d).FirstOrDefault();
Console.WriteLine(
"DepartmentID: {0} Name: {1}",
department.DepartmentID,
department.Name);
}
Állítsa össze és futtassa az alkalmazást. A program a következő kimenetet állítja elő:
DepartmentID: 1 Name: English
A létrehozott adatbázis megtekintése
Az alkalmazás első futtatásakor az Entity Framework létrehoz egy adatbázist. Mivel telepítve van a Visual Studio 2012, az adatbázis a LocalDB-példányon jön létre. Alapértelmezés szerint az Entity Framework a származtatott környezet teljes minősített neve után adja az adatbázist (ebben a példában ez az EnumCodeFirst.EnumTestContext). A meglévő adatbázis későbbi felhasználási időpontjai.
Vegye figyelembe, hogy ha az adatbázis létrehozása után bármilyen módosítást hajt végre a modellen, az adatbázisséma frissítéséhez először a Code First Migrationst kell használnia. A migrálások használatát példaként lásd: Code First to a New Database .
Az adatbázis és az adatok megtekintéséhez tegye a következőket:
- A Visual Studio 2012 főmenüjében válassza a Nézet ->SQL Server Object Explorer lehetőséget.
- Ha a LocalDB nincs a kiszolgálók listájában, kattintson az SQL Server jobb egér gombjára, és válassza az SQL Server hozzáadása az alapértelmezett Windows-hitelesítés használatával a LocalDB-példányhoz való csatlakozáshoz
- Bontsa ki a LocalDB csomópontot
- Bontsa ki az Adatbázisok mappát az új adatbázis megtekintéséhez és a Részleg tábla tallózásához Megjegyzés: a Code First nem hoz létre olyan táblát, amely megfelel az enumerálási típusnak.
- Az adatok megtekintéséhez kattintson a jobb gombbal a táblára, és válassza az Adatok megtekintése lehetőséget
Összefoglalás
Ebben az útmutatóban azt vizsgáltuk meg, hogyan használhat enumerálási típusokat az Entity Framework Code First használatával.