Ebben a posztban meg fogom mutatni, hogyan kell kapcsolódni egy SQL szerverhez Visual Studio használatával
Adott projektünkön belül kattintsunk a models-re majd add -> new Item:
Válasszuk az ADO.NET Entity Data Model lehetőséget:
Válasszuk az EF Designer from database lehetőséget: (ebben az esetben már az sql szerver meg van írva, mi csak használni szeretnénk)
Majd New Connectionra kattintva:
úgy csatlakozunk az sql szerverhez, ahogy ebben a posztban tettük:
Ha a beírt adatok helyesek, akkor a VS felsorolja az SQL szerveren található adatbázisokat, én a Database adatbázist fogom használni:
Válasszunk biztonsági szintet: (én a kódba beleírtam a csatlakozási jelszót is,ahogy a képen látszik)
Majd válasszuk ki, melyik táblát szeretnénk importálni:
Ezt kiválatsztva létrejön a fizikai kapcsolat az adatbázis szerverrel,amit egy fizikai modelként (edmx) ment el. Model réteg nekem most így néz ki:
Nézzük meg mi is történt a háttérben. Web.config fájlba került bele egy új adatbázis kapcsolódási pont. A képen sárgával kiemeltem:
Author Archives: Tamás Lévai
Add migration
Ha szeretnénk bővíteni az AspNetUser táblát saját “tulajdonságokkal” a következőeket kell tennünk:
Esetünkben Deleted tulajdonsággal bővítünk:
-használjuk a System-et:
Az egyedünk a DbMigration-ból származtatjuk:
Majd parancssorban bekapcsoljuk a migrációt az Enable-Migrations paranccsal:
Hozzáadjuk az AspNetUser táblához az új tudlajdonságunk:
Frissítjük az adatbázist:
Esetleges változtatásokat elvégezzük a view részen is, de esetünkben ez rejtett tulajdonság, ezért nem kell megjeleníteni.
Mostantól használhatjuk az AspNetUser táblát a hozzáadott új tulajdonságával együtt.
Connect to azure
Ebben a cikkben meg fogom mutatni, hogyan kell kapcsolódni az AZURE adatbázisunkhoz SQL szerveren keresztül.
Ha ezt olvassuk, akkor már van AZURE adatbázisunk, ha nincs az előző cikk segít létrehozni.
Válasszuk ki a Connect to your database fül alatt View SQL connection string-et.
Itt látjuk a szerver nevét, az id-t a jelszóra meg emlékszünk. 🙂
Indítsuk el az SQL server management programot.
Ide írjuk be az azure-n látott adatokat. Sikeres belépés után a program így néz ki:
Írjuk meg az sql utasításokat. Válasszuk a new query-t a fenti menübűl:
Az én utasításaim így néznek ki:
Hajtsuk végre! (execute parancs)
Az adatbázisban létrejöttek a táblák. Lent pedig látjuk, hogy a sript hiba nélkül lefutott.
Azure – New Database
Ha szeretnénk egy adatbázis szervert létrehozni a legkönnyebben Microsoft Azure-n keresztül tudjuk megtenni.
Az oldal így néz ki:
Nekem már van pár adatbázisom, de ezek lejártak. Hozzunk létre újat.
Kattintsunk bal lent a new ikon-ra.
Válasszuk az SQL_DATABASE link alatt a CUSTOM CREATE fület.
A felugró ablakban válasszuk ki a Nevet, majd én a RETIRED TIERS alatt a web-et választottam ki, ekkor a maximális méret 1gb-ra állítódik be. COLLATION-t beállítottam magyarra. Lent pedig kiválasztottam az új SQL database szerver létrehozását.
A felugró menüben adjunk meg nevet, régiót és a használni kívánt jelszavat.
Kész is a szerverünk. A listában látszik is:
Már csak be kell azt állítani, hogy a tűzfal átengedje az IP címünket, amikor szeretnénk az adatbázist feltölteni. Válasszuk ki a beállítandó adatbázist, kattintsunk a nevére.
Válasszuk ki a kiemelt szöveget. Mostantól már lehet is használni a szervert, ahogy szerenénk!
Web API contoller használata
Ha már létrehoztunk a controllereket próbáljuk meg használni is! 😛
Hozzuk létre az adatbázis kapcsolatot:
Következő a 2 get utasítás:
mit is csinál az első get?
Futtassuk a projektünket, hívjuk meg a webapi controllerünket:
http://localhost:xxxxx/api/Coords címen, nálam az eredmény:
Ez az eredményt az első get hívásra kaptuk, ami visszaadja az adatbázis teljes tartalmát. Hívjuk meg a 2. get -et ami paraméterezve van:
Weboldal válasza az ezzel az id-vel rendelkező egyed lesz:
Ezek alapján írhatunk a többi utasításra(put,post,delete) példát:
EnableSSL
Ha már van egy létező projektunk, és szeretnénk bekapcsolni az SSL-t a következőeket kell tennünk:
-Kiválasztjuk a solotion a projektünk alatt:
Properties fülön (alul) látjuk az SSL aktuális állapotát:
Duplán kattintsunk rá, ekkor enable-lesz, és a következő üzenetet kapjuk:
elfogadjuk, majd elfogadjuk a következő üzenetet is:
Ekkor a Properties fülön látni fogjuk az SSL url-jét, localhoston az én esetemben 44300 porton. Ha ott nem látszik, akkor projekt beállításai között a web fület kiválasztva látjuk a portot.
ADO.NET Entity Framework (4) – change view
Nézzük meg, hogy lehet módosítani az EF-t. Esetünkben elfelejtettünk jelszót rendelni a felhasználóhoz.
Nyissuk meg a felhasznalo.sql-t amit itt írtunk.
Írjunk bele plusz egy sort a T-SQL-be (esetünkben ez a password).
Futtassuk le! (F5)
Nézzük meg a modellben a DataMVCConnection.edmx-et.
Itt még nem frissült a felhasználó tábla.
Klikkeljünk a DataMVCConnection.edmx-re, majd update modell from Database:
Válasszuk ki, azt a táblát, amelyik módosult (akár mindegyiket, esetünkben a felhasználó).
Ekkor megjelenik a jelszó mező is, buildeljük a projektünket:
Jelenlegi állásban a viewben még NEM jelenik meg a jelszó!
A legegyszerűbb talán úgy létrehozni újra, hogy mindent törlünk, hiszen még semmit se módosítottunk: (töröljük a felhasznalokat a view mappából és a hozzá tartozó controllert: FelhasznaloesController.cs)
Utolsó lépésként újrageneráljuk a controllert és hozzá a view-et ahogy itt tettük.
ADO.NET Entity Framework (3)
Hozzunk létre Viewet az eddig elkészült adatbázisunkhoz.
Adjunk hozzá egy új scaffolded item-et a controllerhez:
Válasszuk a 2. lehetőséget:
Válasszuk ki a model classt és a data context clast. Először célszerű az utóbbit, majd a model classban legördülő menüből válasszuk azt amit mi hoztunk létre adatbázis szinten az előző bejegyzésekben.
Ismételjük meg annyiszor, ahány táblánk van, esetünkben ez 3. Miután elkészültünk az alábbi file-ket szúrta be nekünk a VS:
Nézzük meg ezeket interneten. Először gyártsunk hozzá vezető linkeket:
Futtassuk a projektunkat egy böngészőben. (F5) Eredményünk:
Nézzük meg pl. a készülékek listáját:
Az itt megjelenő készülékek és leírásaikat mi írtuk meg itt.
Emlékeztetőül az utasítás ez volt:
MERGE INTO Droid AS Target
USING (VALUES
(1, ‘samsung s4′,’S4-es készulékem’, 1,1,1),
(2, ‘LG Nexus4′,’N4-es készulékem’, 2,1,1)
)
AS Source (ID, Nev, Leiras, UserID,CameraID,GPSID)
ON Target.ID = Source.ID
WHEN NOT MATCHED BY TARGET THEN
INSERT (Nev, Leiras, UserID,CameraID,GPSID)
VALUES (Nev, Leiras, UserID,CameraID,GPSID);
ADO.NET Entity Framework (2)
Feladatunk most hozzunk létre egy üres MVC projektet egy új solutionban vagy az előzőleg elkészült solution(ADO.NET Entity Framework 1 projekt) -hoz adjunk hozzá egy MVC projektet. Én az előző posztban elkészült projekthez adom hozzá a GoogleMaps-os projektomat.
Minden előtt buildeljük a projektunkat.
MCV projektunk modell részéhez adjunk hozzá egy új item-et:
Típusa legyen ADO.NET EDM
Tovább haladva válasszuk az első-t.
Kattintsunk a “New Connection”-ra
Az előugró ablakban írjuk be a képen látható server nevét és a database nevét.
Ha hibával szállna el: akkor a szerver nevét az SQL server Object Explorer-ben ellenőrizhetjük:
Erre a lépésre nincs szükségünk, ha mindent megcsináltunk az előző poszt alapján, és minden lefutott hiba nélkül.
Ha sikeresen beállítottuk az adatbázis és a szerver nevét OK-ézzuk le az ablakot, ezt kell hogy lássuk:
nextre kattintva válasszuk ki a táblázatokat:
Finishre kattintva az alábbi eredmény tárul elénk:
Eddigi utasításaink az alábbiakat hozta létre a modellben:
Most már a kapcsolat is megvan a “külső” adatbázisunk és az az MVC projektünk között.
Most már csak használni kell!
ADO.NET Entity Framework (1)
Hogyan hozzunk létre egy EF adatbázist?
Először telepítsük a package Manager Console-ban:
Install-Package EntityFramework
Hozzunk létre egy új SQL Server Adatbázist:
Project settings-ben a target platrofmot állítsuk MS azure-ra.
Adjunk hozzá egy új táblát:
T-SQL-ben írjuk meg az sql kódunkat, esetemben:
Én 3db táblát hozok létre ezek így néznek ki:
végül a két táblát összekötő tábla:
Hozzunk létre egy script-et, ami beszúr adatokat a táblában. Ez a script mindig lefordul, ezzel vigyázni kell:
Az én scriptem:
Futtassuk a projektunkat, végeredmény az előző képen látható kimenet:
build és deploy lefut sikeresen 0 hibával.