Knižnica ADO.NET (ActiveXDataObjects 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 vrelač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ógieADO, no objektový model je značne odlišný, takže je považovaná za nový produkt.
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 preSQL Server (menný priestorSystem.Data.SQLClient),OLEDB (System.Data.OleDb) aODBC (System.Data.Odbc), iní výrobcovia (napr. pre databázové systémyOracle,MySQL,PostgreSQL) môžu dodávať vlastných poskytovateľov.
Samotné čítanie dát majú na starosti triedy typuodvodené od rozhraniaIDataReader, ktoré slúžia len na rýchle čítanie dát, alebo triedy odvodené od rozhraniaIDataAdapter, ktoré vytvárajú objekty typuDataSet, 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).
V roku 2007 bola s verziou .NET 3.5 vydaná komponentaLINQ (LanguageIntegratedQuery), 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) aXML (LINQ to XML), neskôr pribudla implementácia pre Entity Framework (LINQ to Entities). LINQ predstavuje rozšírenie jazykovC# aVisual Basic.NET o dopytovaciu syntax podobnú dopytom v jazykuSQL,lambda výrazy, implicitné typovanie premenných, anonymné typy a inicializátory objektov.
inthodnota=5;varvysledky=fromcinKolekciawherec.Vlastnost<hodnotaselectnew{c.Vlastnost,c.InaVlasntost};foreach(varvysledokinvysledky){Console.WriteLine(vysledok);}
Jednoduchý príklad dopytu napísaného v syntaxi LINQ, ktorý prechádza filtruje kolekciuKolekcia
, a vyberá z nej le tie prvky, ktorých vlastnosť je menšia ako hodnota premennej.
LINQ to SQL je implementácia prístupu preMicrosoft 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")]publicclassCustomer{[Column(IsPrimaryKey = true)]publicintCustID;[Column]publicstringCustName;}
Príklad predstavuje trieduCustomer
s dvoma vlastnosťamiCustID
aCustName
, ktorá mapuje tabuľkuCustomers
uloženú na SQL Serveri na základe uvedených atribútovTable
aColumn
.