LINQ sql

LINQ to SQL predostavlyaetinfrastrukturu runtime pentru gestionarea datelor relaționale ca obiecte. VLINQ la SQL relațională de date model de bază de date este mapat la modelul de obiect exprimat în limbajul de programare al dezvoltatorului. La efectuarea prilozheniyaLINQ la SQL traduce interogările integrate în limba în modelul de obiect în SQL și le trimite la baza de date pentru executare. În cazul în care baza de date returnează rezultatele, LINQ SQL le transformă înapoi în obiecte care pot fi controlate.

LINQ SQL include suport pentru procedurile memorate, funcțiile definite de utilizator în baza de date, și moștenirea în modelul de obiect.

Noțiuni de bază (LINQ sql)

Cu LINQ SQL, puteți utiliza tehnologia LINQ pentru a avea acces la bazele de date SQL în același mod ca și o colecție în memorie.

Următorul exemplu de cod creează un obiect nw pentru a reprezenta baza de date Northwind, executați o interogare pentru a tablitseCustomers, șir de filtru pentru a căuta clienți (clienți) de la Londra (London), și selectați CompanyName pentru a extrage linia.

Când ciclul de colectare se extrage valori CompanyName.

// Northwnd moștenește de la System.Data.Linq.DataContext.

// sau, dacă nu utilizați SQL Server Express

// Northwnd nv = new Northwnd ( "Database = Northwind; Server = nume_server; integrat de securitate = SSPI");

Var companyNameQuery =

Object Model LINQ sql

LINQ SQL modelul de obiect, exprimat în limba programului de dezvoltator, în comparație cu modelul de date al unei baze de date relaționale. Ulterior, operațiunile de date se efectuează în conformitate cu modelul de obiect.

In acest model, comenzile bazei de date (de exemplu, INSERT) nu sunt executate în baza de date. În schimb, o schimbare a valorilor și a punerii în aplicare a metodelor are loc în cadrul modelului de obiect. Dacă doriți să trimiteți o interogare la o bază de date sau pentru a transfera modificări, LINQ SQL traduce cerințele în comenzi SQL valabile și trimite aceste comenzi la baza de date.

Tabelul de mai jos prezintă elementele cele mai de bază în modelul de obiect LINQ SQL și relația lor cu elementele din modelul de date relaționale.

Modelul obiect LINQ to SQL

Relational Data Model

clase de entități și de baze de date LINQ sql

Numai cazuri de clase pot fi stocate în baza de date, un tabel de mapare (de exemplu, clasele de entități).

Coloanele de membrii clasei, și LINQ baze de date SQL

Pe lângă legarea cu mese de clasă pot fi atribuite câmpuri sau proprietăți pentru a reprezenta coloane de baze de date. Pentru a face acest lucru, LINQ SQL defineste atributul ColumnAttribute. așa cum se arată în exemplul următor.

In baza de date sunt stocate sau preluate din ea numai acele câmpuri și proprietățile care sunt coloane asociate. Domenii și proprietăți care nu sunt declarate ca coloane, sunt considerate părți temporare ale logicii de aplicare.

LINQ SQL hărți baza de date SQL Server cu LINQ model de obiecte SQL sau prin utilizarea de atribute, sau folosind un fișier de mapare extern. Această secțiune prezintă o abordare bazată pe atribute.

În LINQ sa de SQL forma cea mai simplă compară cu baza de date DataContext. masa de clasa Entitate, iar coloanele și comunicații - proprietățile acestor clase de entități.

DataContext clasa este sursa tuturor entităților mapate printr-o conexiune de baze de date. Se ține evidența modificărilor aduse tuturor entităților preluate și menține „certificatul Cache“, care garantează că entitățile recuperate mai mult de o dată sunt reprezentate de aceeași instanță de obiect.

În general, instanța DataContext este proiectat pentru o „unitate de lucru“, indiferent de modul în care o aplicație definește acest termen. DataContext este un obiect simplu, iar crearea sa nu necesită cheltuieli mari de resurse. LINQ aplicație SQL creează DataContext instanțe uzuale în metoda sau ca element al claselor pe termen scurt, care reprezintă un set logic de operații din baza de date.

Dezvoltatorii folosind Visual Studio, se realizează de obicei o comparație bazată pe atribute folosind constructorul Object Designer relațională.