ADO.NET

z Wikipédie, slobodnej encyklopédie

Knižnica ADO.NET (ActiveX Data Objects for .NET) je súbor softvérových komponentov (tried, rozhraní atď.) platformy .NET, ktorej je nedeliteľnou súčasťou. ADO.NET sa používa na čítanie a modifikáciu dát uložených v relačnách databázach, ako aj v nerelačných dátových zdrojoch. Knižnica je, vzhľadom na podobnosť názvov, považovaná za evolučný krok staršej technológie ADO, no objektový model je značne odlišný, takže je považovaná za nový produkt.

Architektúra[upraviť | upraviť zdroj]

Konceptuálne je knižnica ADO.NET rozdelená na poskytovateľov a konzumentov dát, pričom za konzumenta sú považované aplikácie, ktoré potrebujú dáta a poskytovatelia predstavujú triedy, ktoré poskytujú dáta konzumentom. Na rozdiel od ADO, ADO.NET rozdeľuje poskytovateľov podľa typu databázy. V štandardnej knižnici sa nachádzajú poskytovatelia pre SQL Server (menný priestor System.Data.SQLClient), OLEDB (System.Data.OleDb) a ODBC (System.Data.Odbc), iní výrobcovia (napr. pre databázové systémy Oracle, MySQL, PostgreSQL) môžu dodávať vlastných poskytovateľov.

Samotné čítanie dát majú na starosti triedy typu odvodené od rozhrania IDataReader, ktoré slúžia len na rýchle čítanie dát, alebo triedy odvodené od rozhrania IDataAdapter, ktoré vytvárajú objekty typu DataSet, v ktorých je možné ukladať v pamäti rozsiahlejšie dátové štruktúry vo forme tabuliek (objekty typu DataTable) ako aj ich ich vzťahov (objekty typu DataRelation) a obmedzení (objekty typu Constraint).

LINQ[upraviť | upraviť zdroj]

Bližšie informácie v hlavnom článku: Language Integrated Query

V roku 2007 bola s verziou .NET 3.5 vydaná komponenta LINQ (Language Integrated Query), ktorá predstavila jednotný programový model na prácu s dátami (ich filtrovanie, projekciu, enumeráciu atď.) s implementáciou prístupu pre objekty (LINQ to Objects), ADO.NET (LINQ to SQL, LINQ to DataSets) a XML (LINQ to XML), neskôr pribudla implementácia pre Entity Framework (LINQ to Entities). LINQ predstavuje rozšírenie jazykov C# a Visual Basic.NET o dopytovaciu syntax podobnú dopytom v jazyku SQL, lambda výrazy, implicitné typovanie premenných, anonymné typy a inicializátory objektov.

int hodnota = 5; 

var vysledky =  from c in Kolekcia
                where c.Vlastnost < hodnota
                select new {c.Vlastnost, c.InaVlasntost};

foreach (var vysledok in vysledky)
{
        Console.WriteLine(vysledok);
}

Jednoduchý príklad dopytu napísaného v syntaxi LINQ, ktorý prechádza filtruje kolekciu Kolekcia, a vyberá z nej le tie prvky, ktorých vlastnosť je menšia ako hodnota premennej.

LINQ to SQL je implementácia prístupu pre Microsoft SQL Server, kde je dopyt napísaný v syntaxi LINQ prevedený do jazyka T-SQL, ktorý je spracovaný databázovým strojom SQL Servera a výsledok dopytu je zaslaný naspäť. Nutnosťou takéhoto spracovania dopytu je vytvorenie mapovania medzi relačnými dátami uloženými na strane servera a dátovými štruktúrami na strane klienta (aplikácie), na čo sa využívajú atribúty tried.

[Table(Name="Customers")]
public class Customer
{
     [Column(IsPrimaryKey = true)]
     public int CustID;

     [Column]
     public string CustName;
}

Príklad predstavuje triedu Customer s dvoma vlastnosťami CustID a CustName, ktorá mapuje tabuľku Customers uloženú na SQL Serveri na základe uvedených atribútov Table a Column.