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.
A videó és a részletes útmutató bemutatja, hogyan képezheti le először a térbeli típusokat az Entity Framework Code-tal. Azt is bemutatja, hogyan használható LINQ-lekérdezés két hely közötti távolság megkeresésére.
Ez az útmutató a Code First használatával hoz létre új adatbázist, de használhatja a Code First-et egy meglévő adatbázishoz is.
A térbeli típus támogatása az Entity Framework 5-ben jelent meg. Vegye figyelembe, hogy az új funkciók, például a térbeli típus, az enumerálás és a táblaértékű függvények használatához meg kell céloznia a .NET-keretrendszer 4.5-öt. A Visual Studio 2012 alapértelmezés szerint a .NET 4.5-öt célozza meg.
Térbeli adattípusok használatához egy térbeli támogatással rendelkező Entity Framework-szolgáltatót is használnia kell. További információkért tekintse meg a térbeli típusok szolgáltatói támogatását .
Két fő térbeli adattípus létezik: a földrajz és a geometria. Az földrajzi adattípus ellipszoid adatokat (például GPS szélességi és hosszúsági koordinátákat) tárol. A geometriai adattípus euklideszi (sík) koordinátarendszert jelöl.
A videó megtekintése
Ez a videó bemutatja, hogyan képezheti le először a térbeli típusokat az Entity Framework Code-tal. Azt is bemutatja, hogyan használható LINQ-lekérdezés két hely közötti távolság megkeresésére.
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 a SpatialCodeFirst 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 az Egyetemi osztályt.
Az Egyetem a DbGeography típus Hely tulajdonságával rendelkezik. A DbGeography típus használatához hivatkozást kell hozzáadnia a System.Data.Entity szerelvényhez, és hozzá kell adnia a System.Data.Spatial utasítást is.
Nyissa meg a Program.cs fájlt, és illessze be a következő utasításokat a fájl tetején:
using System.Data.Spatial;
Adja hozzá a következő Egyetemi osztálydefiníciót a Program.cs fájlhoz.
public class University
{
public int UniversityID { get; set; }
public string Name { get; set; }
public DbGeography Location { 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 a System.ComponentModel.DataAnnotations szerelvényre is hivatkozik.
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 UniversityContext : DbContext
{
public DbSet<University> Universities { 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 két új Egyetemi objektumot ad hozzá a környezethez. A térbeli tulajdonságok inicializálása a DbGeography.FromText metódussal történik. A WellKnownTextként ábrázolt földrajzi pont át lesz adva a metódusnak. A kód ezután menti az adatokat. Ezután létrejön és végrehajtja azt a LINQ-lekérdezést, amely egy egyetemi objektumot ad vissza, ahol a helye a megadott helyhez legközelebbi.
using (var context = new UniversityContext ())
{
context.Universities.Add(new University()
{
Name = "Graphic Design Institute",
Location = DbGeography.FromText("POINT(-122.336106 47.605049)"),
});
context. Universities.Add(new University()
{
Name = "School of Fine Art",
Location = DbGeography.FromText("POINT(-122.335197 47.646711)"),
});
context.SaveChanges();
var myLocation = DbGeography.FromText("POINT(-122.296623 47.640405)");
var university = (from u in context.Universities
orderby u.Location.Distance(myLocation)
select u).FirstOrDefault();
Console.WriteLine(
"The closest University to you is: {0}.",
university.Name);
}
Állítsa össze és futtassa az alkalmazást. A program a következő kimenetet állítja elő:
The closest University to you is: School of Fine Art.
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 a SpatialCodeFirst.UniversityContext). 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 keresse meg az Egyetemek táblát
- 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ók a térbeli típusok az Entity Framework Code First használatával.