Akár a „Create New SQL Server Database” is jó, ugyanilyen lépésekkel Adatok feltöltése Új DB-re jobbkatt, New query A létrehozó SQL -ből mindent copypaste, Execute, ez után a query bezárható Új db/tables- re jobbkatt, refresh: táblák megjelennek A táblák minden futtatáskor visszaállnak az eredeti állapotra!"> Akár a „Create New SQL Server Database” is jó, ugyanilyen lépésekkel Adatok feltöltése Új DB-re jobbkatt, New query A létrehozó SQL -ből mindent copypaste, Execute, ez után a query bezárható Új db/tables- re jobbkatt, refresh: táblák megjelennek A táblák minden futtatáskor visszaállnak az eredeti állapotra!">

Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Web programozás és haladó fejlesztési technikák – C#

Hasonló előadás


Az előadások a következő témára: "Web programozás és haladó fejlesztési technikák – C#"— Előadás másolata:

1 Web programozás és haladó fejlesztési technikák – C#
SQL server elérése Entity Framework módszerrel

2 LocalDB létrehozása In-Solution In-Profile Adatok feltöltése
Project / Add New Item / Service-based Database (ez SQL server file lesz. Local Database: SQL server compact file) Nekünk mindkettő jó, service-based-et használunk: EmpDept Előbb feltöltjük az adatbázist, majd azután generálunk osztályokat In-Profile Server Explorer -> Right click (Data Connections) -> Add Connection ( Microsoft SQL Server + .Net provider for SQL Server <OK>) Server name = (localdb)\v11.0 , Database name = EMPDEPT <OK> "Database does not exist. Attempt to create?" <YES> Akár a „Create New SQL Server Database” is jó, ugyanilyen lépésekkel Adatok feltöltése Új DB-re jobbkatt, New query A létrehozó SQL -ből mindent copypaste, Execute, ez után a query bezárható Új db/tables- re jobbkatt, refresh: táblák megjelennek A táblák minden futtatáskor visszaállnak az eredeti állapotra!

3 A modell legenerálása (SQL first)
Előfeltétel: meglévő táblák Project, Add new Item, ADO.NET Entity Data Model <ADD> Generate from database <NEXT> Az MDF file legyen a legördülő menüben + save connection settings <NEXT>; EF6.0 <NEXT>; Mindegyik tábla mellett pipa + Model namespace = EmpDeptModel <FINISH> Konfigurációtól függően: Template can harm your computer, click ok to run ... <OK> <OK> Eredmény: automatikusan generált osztályok (mint DataSetnél), csak ezek nagyrészt generikus osztályok típusparaméterezett változatai vagy POCO osztályok  ~30KB a két táblás adatbázis

4 1. Inicializálás ED = new EmpDeptEntities(); Console.WriteLine("Connect OK"); // DbSet<T> típus, LINQ bővítménymetódusokkal // LINQ query syntax is lehetséges // IEnumerable<T> vs IQueryable<T> DEPT reszleg = ED.DEPT.First(); Console.WriteLine(reszleg.DNAME); // Lazy loading string reszlegNeve = ED.EMP.First().DEPT.DNAME;

5 2. INSERT EMP ujdolg = new EMP() { ENAME = "BELA", MGR = null, DEPTNO = 20, EMPNO = 1000 }; ED.EMP.Add(ujdolg); ED.SaveChanges(); Console.WriteLine("Insert OK");

6 3. UPDATE EMP valaki = ED.EMP.Single(x => x.EMPNO == 1000); valaki.ENAME = "JOZSI"; ED.SaveChanges(); Console.WriteLine("Update OK");

7 4. DELETE EMP valaki = ED.EMP.Single(x => x.EMPNO == 1000); ED.EMP.Remove(valaki); ED.SaveChanges(); Console.WriteLine("Delete OK");

8 5. SELECT string s = "", sep=""; foreach (EMP dolg in ED.EMP.Where(dolgozo => dolgozo.SAL >= 3000)) { s += sep + dolg.ENAME; sep = ","; } Console.WriteLine(s); Console.WriteLine( string.Join(";", ED.EMP.Select(x => x.ENAME)) ); Cél: azon nevekkel feltölteni egy listboxot, akiknek a fizetése >= 3000

9 6. JOIN var dolgozok = from dolgozo in NE.EMP join reszleg in NE.DEPT on dolgozo.DEPTNO equals reszleg.DEPTNO select new { dolgozo.ENAME, dolgozo.SAL, reszleg.DNAME }; VAGY Lazy Loading kihasználásával: select new { dolgozo.ENAME,dolgozo.SAL,dolgozo.DEPT.DNAME Mindegy h hogyan állítom be az adatforrást

10 Táblák Oracle demo táblák

11 Feladatok Adjunk hozzá a projekthez egy „Service-Based Database” elemet EmpDept.mdf névvel, ezt töltsük föl az orademo.sql –ből, majd hozzunk létre Entity osztályokat! Határozzuk meg részleg nevenként a dolgozók átlagjövedelmét (jövedelem = fizetés+jutalék)! Határozzuk meg a legnagyobb (legtöbb főt foglalkoztató) részleg minden adatát! Melyik a legkisebb összfizetésű munkakör? / Írjuk ki a munkaköröket átlagfizetés szerinti sorrendben. Kik azok a dolgozók, akik az elnök felvétele utáni 30 napon belül lettek felvéve?

12 Források http://msdn.microsoft.com/en-us/library/bb882674
… és még soksok link az msdn.microsoft.com –ról … és még soksok link a stackoverflow.com –ról LINQ: Reiter István: C# jegyzet ( , 250. oldal (A könyv az alap LINQ to Objects-et tartalmazza)

13

14


Letölteni ppt "Web programozás és haladó fejlesztési technikák – C#"

Hasonló előadás


Google Hirdetések