Entity Framework alapú adatbáziselérés



Hasonló dokumentumok
Entity Framework alapú adatbáziselérés

Vizuális programozás gyakorlat

Access adatbázis elérése OLE DB-n keresztül

Szoftvertechnolo gia 7. gyakorlat

Entity Framework alapú adatbáziselérés 2

INFORMATIKAI ALAPISMERETEK

Vizuális programozás gyakorlat

Entity Framework + LINQ oktatási segédlet

INFORMATIKAI ALAPISMERETEK

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Szoftvertechnolo gia gyakorlat

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

A könyv tartalomjegyzéke

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

ASP.NET 2.0 (Whidbey)

INFORMATIKAI ALAPISMERETEK

Adattárház automatizálási tapasztalatok a Generali Biztosítóban

3. Gyakorlat Ismerkedés a Java nyelvvel

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):

Adatbázisok I A relációs algebra

Széchenyi István Egyetem

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1


Bánsághi Anna

Bánsághi Anna

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Powershell 1. gyakorlat

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

Gyakorlati vizsgatevékenység B

Adatbázisok* tulajdonságai

Kinek szól a könyv? Hogyan épül fel a könyv? Megjelenés előtti szoftver A hálózati kézikönyv tartalma A könyv támogatása Kérdések és megjegyzések

Adatbázis-kezelés ODBC driverrel

FOKA elérés beállításának leírása

Microsoft SQL Server telepítése

Oracle BI Administration Tool. Repository felépítése

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

C# osztályok. Krizsán Zoltán

Webszolgáltatás és XML alapú adatbázis. 1. Az adatbázis megtervezése

INFORMATIKAI ALAPISMERETEK

Osztály és objektum fogalma

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül

B I T M A N B I v: T M A N

C#, OOP. Osztályok tervezése C#-ban

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Térinformatika. j informáci. ciós s rendszerek funkciói. Kereső nyelvek (Query Languages) Az adatok feldolgozását (leválogat

10. évfolyam 105 óra azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

A C# PROGRAMOZÁSI NYELV

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Konfigurációkezelés (2B)

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (ASP.NET)

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven

A.NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll:

Grafikus felületek készítése 1.

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Programozás és adatbázis kezelés PHP ben

JAVA PROGRAMOZÁS 3.ELŐADÁS

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

Segítség a megoldáshoz: 1. Készítse el a Window-t az ábrának és az osztálydiagramnak megfelelően.

1. AZ AUDITPRO RENDSZER ÁTTEKINTÉSE ALAPVETÕ TELEPÍTÉS AZ AUDITPRO TELEPÍTÉSE ÉS FELÜGYELETE HÁLÓZATOKON EREDMÉNYEK...

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Informatika 11. Adatbázis szerverek Kottyán, László

Az Online levélkiszolgáló

libgdx alapok, első alkalmazás

strings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string

Régi, statikus adatok élővé tétele és vizsgálata

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

A DBM függvények használata

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

Adatbázis használata PHP-ből

Osztályok. 4. gyakorlat

A C# programozási nyelv alapjai

VISUAL BASIC ALAPISMERETEK

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System

Delegátumok C#-ban Krizsán Zoltán iit

A Remote Support Platform 3.1 újdonságai

munkafüzet open eseményéhez

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt

C# feladatok gyűjteménye

Programozás 2., I. kötet Az objektumorientált paradigma alapjai

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Gyakorlati vizsgatevékenység A

Adatbázisok biztonsága

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Kétdimenziós rajzolás WPF-ben

Programtervezési minták (GEIAL517M) Jegyzőkönyv

.NET alapszolgáltatások 2.

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

Hatékony. kliensfelügyelet. Avégfelhasználói rendszerek tekintetében korántsem olyan egyértelmű a kép, mint az

Generikus Típusok, Kollekciók

Adatbázisok I. Az SQL nyelv

INFORMATIKAI ALAPISMERETEK

Átírás:

Entity Framework alapú adatbáziselérés Dr. Johanyák Zsolt Csaba http://johanyak.hu A gyakorlat célja Model-first megközelítéssel Entity-Framework modell létrehozása, majd ebből adatbázis generálása LocalDB-ben. adatok felvitele közvetlenül illetve programból, lekérdezések gyakorlása. 1. Az Entity Framework modell és az adatbázis létrehozása Töröljük a Class1.cs állományt.

A projekthez adunk egy Entity Data Model-t.

Megadjuk az entitás konténer osztály nevét.

Létrehozunk egy enszemély nevű entitást. Beállítjuk a nevét és az entitáshalmaz nevet. Beállítjuk, hogy a tulajdonságok nevei is megjelenjenek.

Hozzáadunk újabb tulajdonságokat. Egy személyhez több szám is tartozhat, ezért a számhoz létrehozunk egy külön entitást.

Összekötjük őket egy Association kapcsolattal az enszemélytől kiindulva. Navigációs tulajdonságok jelennek meg mindkét entitásnál. Az enszemély oldalon a tulajdonság egy gyűjtemény, ezért a nevét többes számba tesszük a Properties ablakban. Létrehozunk egy entitást enhelység néven.

Egy helységben több személy is lakhat. Ennek megfelelően az enhelység felől ndítjuk a kapcsolatot, majd itt is többes számba tesszük a személyeket. Legeneráljuk az adatbázist.

A Server Explorerben leellenőrizhetjük az adatbázis meglétét.

A táblák létrehozásához futtassuk a szkriptet. 2. Adatfelvitel közvetlenül Vigyünk fel adatokat az adatbázisba a Visual Studio segítségével.

Helységadatok Személyek Telefonszámok

3. Adatfelvitel programból Hozzunk létre egy konzolalkalmazás projektet a megoldáson belül. Vegyük fel a referenciák közé az osztálykönyvtár projektünket.

Létrehozunk egy adattagot az entitáskonténer számára, majd felvesszük a referenciák közé az Entity Framework-öt. Tegyük az adattagot statikussá. Hozzunk létre egy konténer objektumot. Készítsünk egy statikus metódust adatfelvitel céljára. private static void Adatfelvitel() { var h = new enhelység {Irsz = 2090, Név = "Remeteszőlős"};

} } var sz = new enszemély { Vezetéknév = "Argon", Utónév = "Géza", enhelység = h, Lakcím = "Ordas köz 6" }; h.enszemélyek.add(sz); var t1 = new entelefonszám {Szám = "+36-76-555-555", enszemély = sz}; var t2 = new entelefonszám {Szám = "+36-30-556-555", enszemély = sz }; sz.entelefonszámok.add(t1); sz.entelefonszámok.add(t2); cntelefonszámok.enhelységek.add(h); cntelefonszámok.enszemélyek.add(sz); cntelefonszámok.entelefonszámok.add(t1); cntelefonszámok.entelefonszámok.add(t2); cntelefonszámok.savechanges(); Állítsuk be a konzolalkalmazást indító projektként. Futtassuk le a programot, majd ellenőrizzük le, hogy az adatbázisba kerültek-e az adatok.

Hiba: nincs kapcsolatunk az adatbázishoz. Megoldás: másoljuk át az App.Config állományt az osztálykönyvtár projektből a konzolalkalmazás projektjébe, majd indítjuk újra a programot. 4. Az adatbázisban tárolt adatok lementése egy SQL szkriptbe az adatbázis szerkezettel együtt, majd az adatbázis újbóli létrehozása. A gyakorlat célja az, hogy áttekintsük, hogy hogyan tudjuk az adatbázist átvinni egy másik gépre/kiszolgálóra. A feladat végrehajtásához a Microsoft SQL Server Management Studio-t és a Visual Studio-t használjuk. Indítsuk el a Microsoft SQL Server Management Studio-t.

Lementés SQL-szkriptbe:

Visual Studio-ban nyissuk meg a szkriptet. Töröljük belőle az adatbázis fájl létrehozására vonatkozó részt (a kijelölt rész az alábbi képen), majd mentsük el a szkriptet. A szkript kipróbálásához először töröljük a meglévő adatbázist. Ehhez zárjuk le Visual Studioban a kapcsolatot, majd töröljük a kapcsolatot.

Microsoft SQL Management Studio-ban töröljük az adatbázist.

Futtassuk le a szkriptet.

Ellenőrizzük le az adatbázis meglétét a Microsoft SQL Management Studio-ban. 5. Lekérdezések programból Tegyük megjegyzésbe az Adatfelvitel metódushívást a Main metódusban, és készítsünk egy lekérdező metódust, ami a lekérdezés eredményét kiírja a konzolra. A metódusban vegyük sorra a személyeket, és írassuk ki az adataikat. A telefonszámok egymástól vesszővel elválasztva jelenjenek meg. private static void Lekérdez() { Console.WriteLine("Összes adat\r\n-----------"); foreach (var x in cntelefonszámok.enszemélyek) { var s = x.vezetéknév + " " + x.utónév + ": " + x.enhelység.irsz + " " + x.enhelység.név + ", " + x.lakcím + ", "; foreach (var y in x.entelefonszámok) { s += y.szám; if (y!= x.entelefonszámok.last()) s += ", "; } Console.WriteLine(s); } }

6. Adatbázis bővítése újabb entitással Hozzunk létre egy újabb entitást a diagramban az e-mail címek tárolására. Egy személynek több e-mail címe is lehet.

Mentsük le egy szkriptbe a jelenlegi adatbázis adatait.

Futtassuk le az edmtelefonszamok.edmx_uj.sql szkriptet, majd ellenőrizzük le az új adatbázis létrejöttét.

Futtassuk le az adatokat tartalmazó szkriptet. Vigyünk fel néhány e-mail címet Visual Studioból. Egészítsük ki a lekérdez metódust úgy, hogy az e-mail címeket is jelenítse meg. private static void Lekérdez() { Console.WriteLine("Összes adat\r\n-----------"); foreach (var x in cntelefonszámok.enszemélyek) { var s = x.vezetéknév + " " + x.utónév + ": " + x.enhelység.irsz + " " + x.enhelység.név + ", " + x.lakcím + ", "; foreach (var y in x.entelefonszámok) { s += y.szám+", "; } foreach (var y in x.enemailcímek) { s += y.cím; if (y!= x.enemailcímek.last()) s += ", "; } Console.WriteLine(s); } } Mivel a telefonszám után most már mindig kell vessző, ezért a telefonszámos foreach ciklus magja egyszerűsödött, sőt lecserélhetjük egy LINQ kifejezésre. s = x.entelefonszámok.aggregate(s, (current, y) => current + (y.szám + ", ")); Írassuk ki a telefonszámmal nem rendelkező személyek adatait. Console.WriteLine(); Console.WriteLine("Telefonszámmal nem rendekező személyek adatai"); Console.WriteLine("---------------------------------------------"); var er = (from x in cntelefonszámok.enszemélyek where x.entelefonszámok.count == 0 select x).tolist(); var z = er.aggregate("", (current, x) => current + x.vezetéknév +

" " + x.utónév + ": " + x.enhelység.irsz + " " + x.enhelység.név + ", " + x.lakcím + ", " + x.enemailcímek.aggregate("", (curr, y) => curr + (y.cím + ", "))); Console.WriteLine(z); Módosítsuk úgy a sztring összeállítását, hogy az utolsó e-mail cím után ne legyen vessző. var z = er.aggregate("", (current, x) => current + x.vezetéknév + " " + x.utónév + ": " + x.enhelység.irsz + " " + x.enhelység.név + ", " + x.lakcím + ", " + x.enemailcímek.aggregate("", (curr, y) => (y!=x.enemailcímek.last())?curr + (y.cím + ", "):y.cím)); Tartalomjegyzék Entity Framework alapú adatbáziselérés... 1 1. Az Entity Framework modell és az adatbázis létrehozása... 1 2. Adatfelvitel közvetlenül... 14 3. Adatfelvitel programból... 16 4. Az adatbázisban tárolt adatok lementése egy SQL szkriptbe az adatbázis szerkezettel együtt, majd az adatbázis újbóli létrehozása.... 20 5. Lekérdezések programból... 31 6. Adatbázis bővítése újabb entitással... 32 Tartalomjegyzék... 36