YOUR LOGO C# ADO.NET. YOUR LOGO Úvod – ADO.NET  ADO.NET zajišťuje přístup k databázím  2 koncepčně jedinečné styly -Připojeně -Odpojeně přechodné (offline)

Slides:



Advertisements
Podobné prezentace
YOUR LOGO ADO.NET - Práca s databázou. YOUR LOGO ADO.NET  ADO.NET představuje soubor tříd pro přístup k datům v technologii.NET.
Advertisements

Kam se ubírá jazyk C#? Dr. Ing. Dalibor Kačmář Academic Developer Evangelist Developer & Platform Evangelist Group Microsoft Czech & Slovakia Anders Hejlsberg.
23/04/20151 LINQ (1) LINQ (Language Integrated Query) je součást MS.NET Frameworku umožňující jednotný přístup k datům a jejich zpracování deklarativ-
Autor, Název akce Databázové systémy a SQL Lekce 7 Daniel Klimeš.
Zpracování XML a JSON dat na MS SQL Serveru
Inf Používání a tvorba databází. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Praha6.cz Administrace portálu. Struktura informací Hlavní strom  Stránky se statickým textem automatické oživení ( , web, tel., RMČ/ZMČ) textové.
YOUR LOGO C# Entity Framework. YOUR LOGO  Entity framework nám poskytuje: -Vytváří objektový model na základě databázového schématu -Mapuje tabulky,
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně AUTOR: Ing. Oldřich Vavříček NÁZEV: Podpora výuky v technických oborech TEMA: Základy elektrotechniky.
Programování v jazyce C++ Dědičnost a polymorfismus.
TurIS Turistický informační systém ITERACE 2 Ondřej Brožek Martin Cízler Zuzana Hynoušová Roman Jonáš Petr Pulc.
Databáze © Mgr. Petr Loskot
Úvod do databází MS Access (1).
Databázové systémy přednáška 5 – Přístup na data
Databázové systémy I Přednáška 7 Databázové systémy 1 – KIT/IDAS1
Systémové databáze v SQL Serveru
Dotazovací jazyk SQL I.
Vytvořil: Robert Döring
COM – Práce s objektovým modelem jiné aplikace
Evaluace předmětů studenty (Anketky)
Databázové systémy a SQL
Databázové systémy a SQL
Obrázky Ram Rom Nástupci ROM Počítačová pamět Obrázky Paměti Ram rom
Uživatelem definované datové typy
Programování v jazyce C++
Financováno z ESF a státního rozpočtu ČR.
Zkušenosti s nasazením J2EE aplikací na AS GlassFish
Pedagogická komunikace 4. lekce: Verbální komunikace: kladení otázek
Databáze MS ACCESS 2010.
Programovací jazyky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Abstract Factory.
Vytvoření databázového dotazu z více tabulek
Lexikální atomy jazyka C
Databázová aplikace 1 Aplikace soubory se sekvenčním přístupem
Překladače 6. Sémantická analýza
Výukový materiál zpracován v rámci projektu
Cvičení 4 Dědičnost objektů.
RUBY.
Databázové systémy, datové modelování
Informatika pro ekonomy přednáška 8
Legislativní tok Ministerstvo spravodlivosti SR
Databázové systémy a SQL
Počítačová cvičení z předmětu Datové sklady
Microsoft Office Access
Programovatelné automaty (Programmable logic controllers – PLC)
Dotazovací jazyk SQL I.
Opakování učiva pro 9. ročník
Materiál byl vytvořen v rámci projektu
Remote login.
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Název školy: Autor: Název: Číslo projektu: Název projektu:
Dotazovací jazyk SQL - II
A5M33IZS – Informační a znalostní systémy
Přednášky z Distribuovaných systémů
Fronta (1) Dynamická datová struktura typu FIFO (First In First Out)
Přednáška 6 SQL – spojení tabulek.
Přednáška 10 Uložené procedury.
Přednáška 8 INDEXY, POHLEDY.
Přednáška 5 Úvod do SQL.
Analýza informačního systému
Směrování II.
Informatika pro ekonomy přednáška 8
Informační systém základních registrů
Relační databáze na příkladu aplikace Microsoft Access
Algoritmizace a datové struktury (14ASD)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Bridge.
SQL Server 2017: Automatic tuning
Class Diagrams.
Opakování učiva pro 9. ročník
Transkript prezentace:

YOUR LOGO C# ADO.NET

YOUR LOGO Úvod – ADO.NET  ADO.NET zajišťuje přístup k databázím  2 koncepčně jedinečné styly -Připojeně -Odpojeně přechodné (offline) spojení Database ADO.NET klient

YOUR LOGO ADO.NET - poskytovatelé  ADO.NET podporuje mnoho poskytovatelů  Poskytovatel definuje základní množinu tříd vycházející ze System.Data  Poskytovatel je optimalizován pro komunikaci s konkrétním DBMS  System.Data -Connection - připojuje se k uložišti dat -Command – reprezentuje dotaz SQL, název procedury -DataReader – přístup k datům, směr dopředu, jen ke čtení -DataAdapter – přenáší data mezi volajícím a datovým uložištěm -Interní objekty pro operace nad daty (select, insert, update, delete)

YOUR LOGO Získávání dat v připojeném režimu 1.Otevření spojení ( SqlConnection ) 2.Spuštění dotazu ( SqlCommand ) 3.Výsledek se načte do „čtečky“( SqlDataReader ) 4.Uzavření „čtečky“ 5.Uzavření spojení SqlConnection SqlCommand SqlDataReader Databáze SqlParameter SqlParameter SqlParameter

YOUR LOGO Získávání dat v odpojeném režimu  Data jsou „kešována“ v DataSetu 1.Otevření spojení ( SqlConnection ) 2.Naplnění DataSetu (užitím SqlDataAdapteru ) 3.Uzavření spojení 4.Modifikace dat v DataSetu 5.Otevření spojení 6.Uložení změn do DB 7.Uzavření spojení SqlConnection SqlDataAdapter DataSet Database

YOUR LOGO Komponenty ADO.NET SQL Server.NET Data Provider OleDb.NET Data Provider Oracle.NET Data Provider ODBC.NET Data Provider DataReader DbCommand Připojený režim DataSet DataAdapter Odpojený režim … DataContext Table<T> LINQ-to-SQL ObjectContext EntityObject Entity Framework …

YOUR LOGO LINQ  LINQ je jednotný programovací model pro libovolný druh dat  LINQ umožňuje dotazovat se na data nezávisle na datovém zdroji  LINQ pro objekty  LINQ pro ADO.NET -LINQ pro SQL -LINQ pro entity  LINQ pro SQL

YOUR LOGO LINQ  Rozšíření LINQ -LINQ pro Sharepoint -LINQ pro CRM -LINQ pro exchange -LINQ pro …  Příklad: var query = from c in Customers where c.country == „Italy“ select c.CompanyName;

YOUR LOGO LINQ – podpora jazyka  Lokální odvozování typů -Určení správného typu proměnné je ponechán na kompilátoru, který jej odvodí z výrazu přiřazeného do samotné proměnné  Příklady: var a = 5; // a je deklarováno jako int var x = 2.3; // x jako double var p = default(string); // p jako string var u = null; // nelze odvodit typ lokální proměnné z null

YOUR LOGO LINQ – jak pracuje  Kód: Customer[] Customers = GetCustomers(); var query = from c in Customers where c.Country == “Italy” orderby c.Name select new { c.Name, c.City };  Kompilátor: var query = Customers.Where( c => c.Country == “Italy”).OrderBy( c => c.Name).Select( c => new { c.Name, c.City } );

YOUR LOGO LINQ – podpora jazyka  Rozšiřující metody rozšiřuje existující typ přidáním nových metod bez odvozování do nového typu  Rozšiřující metoda musí být statická a veřejná  První parametr je typ, který metoda rozšiřuje  První parametr obsahuje klíčové slovo this  Generický typ jako první parametr rozšiřuje množinu tříd  Rozšiřující metody lze přetěžovat

YOUR LOGO LINQ – podpora jazyka  Rozšiřující metoda – příklad: static class ExtensionMethod { public static decimal Double(this decimal d) { return d + d; } public static decimal Triple(this decimal d) { return d * 3; }

YOUR LOGO LINQ – pokračování  Rozšiřující metody jsou záklaním rysem syntaxe  Vykonání příkazu v DB je odloženo až do prvního přístupu k výsledkům dotazu  Deklarativnější styl jazyka se lépe čte i udržuje  Snadno se dotazujete na objekty, entity, databázové záznamy, uzly XML, …

YOUR LOGO LINQ - dotazy  Dotazy pracují nad objekty implemetující rozhraní IEnumerable nebo IQueryable  Klazuzule from -Míří na instanci třídy implementující rozhraní IEnumerable -Definuje datový zdroj dotazu -Typ proměnné odvodí kompilátor z typu datového zdroje -Lze použít více klauzulí where a spojovat tak různé datové zdroje  Klauzuke Where -Udává filtrovací podmínku, jenž se aplikuje na datový zdroj -Překládá na rozšiřující metodu Where rozhraní IEnumerable

YOUR LOGO LINQ - dotazy  Klauzule Where -V jednom dotazu může být více klauzulí where public static IEnumerable Where (this IEnumerable source, Func predicate)  Klauzule Select -Určuje co se má vybírat z výsledků všech předchozích klauzulí a výrazů

YOUR LOGO LINQ - dotazy  Klauzule Group a Into -Seskupuje výsledky podle klíče var query = from d in Developers group d by d.language into developersGroup select new { Language = developersGroup.Key, DevelopersCount = DevelopersGroup.Count() }

YOUR LOGO LINQ - dotazy  Klauzule OrderBy -Umožňuje vzestupně či sestupně třídit výsledky dotazu  Klazule Join -Spojuje různé datové zdroje na základě členů zdrojů, u nichž lze zjišťovat rovnost -Srovnávání se provádí pomocí speciálního slova „equals“ -U equals záleží na pořadí operandů -Levý klíč představuje vnější sekvenci zdrojů, pravý vnitřní zdroj var result = from c in Categories join p in Products on c.IdCategory equals p.IdCategory …

YOUR LOGO LINQ – operátory  Any -Vrací TRUE, jestliže ve zdrojové sekvenci existuje prvek, který vyhovuje zdanému predikátu -Metoda končí ihned, jakmile je dostupný výsledek bool result = (from c in Customers from o in c,Orders select o).any( o => o.IdProduct == 1)

YOUR LOGO LINQ – operátory  All -Vrací TRUE, kdy podmínce vyhovují všechny elementy ve zdrojové sekvenci bool result = (from c in Customers from o in c.Orders select o).All(o => o.Quantitu > 0);

YOUR LOGO LINQ – operátory  Take -Parametr count představuje počet položek, teré se vyberou ze zdrojové sekvence  First -Vybírá první parametr ze sekvence  FirstOrDefault -Podobné jako First, pokus neexistuje nevrátí chybu

YOUR LOGO ORM model  ORM model přístupu k datům -Mapuje databázové tabulky na třídy a objekty -Objekty jsou automaticky ukládány do databáze -Operace mohou probíhat v připojeném a odpojeném režimu  Výhody -Zvyšuje produktivitu práce, méně kódu -Pracujete s objekty a jejich vztahy namísto tabulek a SQL dotazů -Integrovaný mechanismus dotazování na objekty 21

YOUR LOGO ORM model  Nevýhody -Méně flexibility – SQL příkazy jsou automaticky generovány -Výkonnostní problémy (někdy) Relační databáze ORM Entity (C# třídy) ORM Framewor k

YOUR LOGO ORM model  ORM nástroje v.NET Framework a VS -LINQ to SQL -ADO.NET EntityFramework  ORM nástroje třetích stran -Nhibernate -Telerik Open Acces ORM -MicroORM -Lightspeed

YOUR LOGO LINQ to SQL  ORM framework pro SQL server  Definujete množinu objektů jako abstraktní vrstvu nad relačními daty  Dotazujete se pomocí LINQ  Mapování mezi entitami a databázovou strukturou je popsáno v metadatech  Třída DataContext obstarává komunikaci mezi LINQ a relačním datovým zdrojem