Abordarea perena generală este de a dezvolta o abordare în care construcția a cererii sau serviciul este divizarea în trei părți: un model de domeniu și modelul logic al unui model fizic. modelul de domeniu definește entitățile și relațiile din sistemul simulat. Modelul logic pentru baze de date relaționale prevede normalizarea entităților și a relațiilor, în scopul de a crea tabele cu constrângeri cheie străine. În modelul fizic ia în considerare posibilitatea unui anumit sistem de prelucrare a datelor prin determinarea dependente detaliile motorului bazei de date de stocare a datelor referitoare la împărțirea și indexare.
Modelul fizic este îmbunătățită de către administratorii de baze de date pentru a crește productivitatea, dar programatorii care dezvolta codul aplicației, cea mai mare parte forțat să lucreze cu modelul logic limitat, pregătirea SQL-interogări și apelarea procedurilor memorate. modelul de domeniu este folosit în principal ca un instrument pentru prezentarea și schimbul de opinii cu privire la cerințele de aplicare, atât de des servi drept scheme practic neschimbătoare, care sunt luate în considerare și discutate în primele etape ale proiectului, și apoi ieși din sfera de atenție. Multe echipe de dezvoltatori au decis să săriți peste etapa de creare a unui model conceptual și începe prin tabele care definesc, coloane și chei într-o bază de date relațională.
Cadrul Entitatea dă semnificația modelului, care permite dezvoltatorilor să interogheze entități și relații în modelul de domeniu (care este numit un model conceptual în Entity Framework), în timp ce pentru transferul acestor operațiuni la comanda definită sursa de date în sine este utilizat Entity Framework. Acest lucru elimină utilizarea în aplicații predeterminate rigid dependențe de o anumită sursă de date.
Atunci când se lucrează în Codul Prima dată modelul conceptual este mapat la modelul de stocare în codul. Entitatea cadru poate aduce un model conceptual bazat pe tipuri de obiecte și configurații suplimentare, care pot fi setate. cartografiere metadate generate în timpul execuției în funcție de combinația de definiții ale tipurilor de domeniu și informații de configurare suplimentare, care este specificat în codul. Entitate cadru creează o bază de date bazată pe metadatele, dacă este necesar. Pentru mai multe informații, consultați. Crearea și compararea modelului conceptual.
Atunci când se lucrează cu operația EDM cu un model conceptual model de stocare a modelului și o comparație între ele sunt exprimate în scheme bazate pe XML și definite în numele de fișiere cu extensiile corespunzătoare.
CSDL Limba definește modelul conceptual. CSDL Limba - este realizarea unui EDM la Entity Framework. Extensia fișierului - CSDL.
SSDL Limba definește modelul de stocare, care este, de asemenea, numit modelul logic. Extensia fișierului - SSDL.
Limba MSL definește modelul de stocare de cartografiere și modelul conceptual. Extensia fișierului - MSL.
stocarea și compararea modelului, dacă este necesar, pot fi schimbate fără a modifica datele modelului conceptual și clasele de codul aplicației. Modelul de stocare depinde de furnizorul, astfel încât să puteți lucra cu un model conceptual coerent în diferite surse de date.
Cadrul Entitate de model și de cartografiere fișierele sunt utilizate pentru a efectua crea, citi, actualiza și șterge, efectuate pe entitățile și relații ale modelului conceptual, în operațiuni echivalente în sursa de date. sprijin cadru Entitate, chiar și o comparație a entităților în modelul conceptual cu procedurile stocate în sursa de date. Pentru mai multe informații, consultați. Specificații Limba CSDL, SSDL și MSL.
Când se folosește programarea orientată pe obiecte pentru a comunica cu sistemele de stocare au probleme. Desigur, organizația de clasă seamănă de multe ori organizarea de tabele de baze de date relaționale, dar o astfel de corespondență nu este ideal. tabele normalizate multiple corespund în mod frecvent într-o singură clasă, iar relațiile dintre clase nu sunt prezentate ca relații între tabele. De exemplu, pentru a reprezenta comenzile clienților de vânzare în sala de clasă poate fi utilizată comanda de proprietate, care conține o trimitere la o instanță de Client. dar baza de date șir de caractere tabelă comandă conține coloana cheie străină (sau un set de coloane), cu o valoare care corespunde unei chei primare în tabelul Customer. clasa Clientul poate include o proprietate comenzi numit. care cuprinde o colecție de instanțe comandă de clasă. dar baza de date tabel Clientul nu conține o coloană comparabilă. În acest caz, Entity Framework oferă dezvoltatorilor flexibilitatea unei comunicări sau a unui model complet de comunicare (cum ar fi o bază de date).
În soluțiile existente a fost o încercare de a acoperi această lacună, adesea numit „nepotrivire de tip de date» (nepotrivire impedanta), prin comparație cu tabelele relaționale și coloane doar orientate-obiect clase și proprietăți. În loc de Entity Framework abordare tradițională tabele relaționale, coloane și modele logice cheie străine sunt convertite în entități și relații de modele conceptuale. Acest lucru permite o mai mare flexibilitate în definirea obiectelor și optimizarea modelului logic. Cu instrumente EDM (model de date cu entități) formate clase de date extensibile pe baza modelului conceptual. Aceste clase sunt clase parțiale, care pot fi extinse cu membri adăugate de către dezvoltator suplimentare. În mod implicit, clasele sunt formate pentru un anumit model conceptual derivă din clasele de bază care furnizează servicii pentru entitatea materializării sub formă de obiecte, precum și pentru a urmări și de a salva modificările. Dezvoltatorii pot folosi aceste trei clase pentru lucrul cu entități și relații ca obiecte legate de asociațiile. Dezvoltatorii vor fi, de asemenea, posibilitatea de a personaliza clasele generate pentru modelul conceptual. Pentru mai multe informații, consultați. Lucrul cu obiecte.
Într-o măsură mai mare decât restul soluției de cartografiere obiect-relational, Entity Framework urmărește să ofere aplicațiilor capacitatea de a citi și a modifica datele sub formă de entități și relații în modelul conceptual. Entitate cadru utilizează un model de date și fișiere de cartografiere pentru a converti obiecte de interogare la tipurile de entități reprezentate în modelul conceptual, interogări, în funcție de sursa de date. Rezultatele de interogare sunt convertite în obiecte, executați Entity Framework. Cadrul Entitatea oferă următoarele moduri de a interoga baza modelului conceptual și returnarea obiectelor.
LINQ entități. Acesta oferă suport pentru interogări LINQ pentru a interoga tipurile de entități care sunt definite într-un model conceptual. Pentru mai multe informații, a se vedea. LINQ entități.
Entitate SQL. dialect independent de stocare SQL care lucrează direct cu entități din modelul conceptual și susține conceptele de bază ale EDM (model de date cu entități). Entitatea SQL este folosit pentru a interoga obiecte și interogări, folosind furnizor de EntityClient. cm. Înțelegerea limba Entitate SQL pentru mai multe informații.
Platforma cadru Entitate include furnizor de date EntityClient. Furnizorul administrează compuși entitate convertește cereri în cereri care depind de sursa de date și returnează modulul de date de citire, care este utilizat cadru Entitatea pentru datele entității materializării ca obiecte. În cazul în care nu este necesară materializării obiectelor, furnizor EntityClient poate lucra ca un furnizor de date standard ADO.NET care permite aplicațiilor să execute interogări SQL Entitate și să primească date numai pentru citire, citire a datelor returnate de modulul. Pentru mai multe informații, consultați. Furnizorul EntityClient pentru Entity Framework.
Următoarea diagramă arată arhitectura de acces la date cadru Entitate:
Remedii (model de date folosind entitate) EDM pot forma o clasă derivată din System.Data.Objects.ObjectContext sau System.Data.Entity.DbContext. care reprezintă containerul entitate în modelul conceptual. Obiectul context, oferă un mijloc de urmărire a modificărilor și gestionarea identităților, și obligațiuni concurență. Această clasă oferă, de asemenea, acces la metoda SaveChanges. care înregistrează rezultatele de inserare, actualizare și ștergere a datelor din sursa de date. Astfel de solicitări, aceste modificări sunt făcute sau comenzile generate automat de către sistem, sau proceduri stocate, specificate de către dezvoltator.
furnizor de EntityClient extinde modelul furnizor ADO.NET prin accesarea datelor în ceea ce privește entități și relații ale modelului conceptual. Executa cere limba Entitate SQL. Entitate SQL este un limbaj de interogare de bază cu care EntityClient comunică cu baza de date. Pentru mai multe informații, consultați. Furnizorul EntityClient pentru Entity Framework.
Framework entitate include actualizate SqlClient furnizor de date, care susține arbori de comandă canonice. Pentru mai multe informații, consultați. SqlClient pentru Entity Framework.