Enum támogatás – Első kód

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

Videó: WMV | MP4 | WMV (ZIP)

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

  1. A Visual Studio 2012 megnyitása
  2. Mutasson a Fájl menü Új pontjára, majd kattintson a Project gombra
  3. A bal oldali panelen kattintson a Visual C# elemre, majd válassza a Konzolsablont
  4. 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.

  1. A Megoldáskezelőben kattintson a jobb gombbal a projekt nevére.
  2. Válassza a NuGet-csomagok kezelése...
  3. A NuGet-csomagok kezelése párbeszédpanelen válassza az Online lapot, és válassza az EntityFramework csomagot.
  4. 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:

  1. A Visual Studio 2012 főmenüjében válassza a Nézet ->SQL Server Object Explorer lehetőséget.
  2. 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
  3. Bontsa ki a LocalDB csomópontot
  4. 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.
  5. 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.