Sunteți pe pagina 1din 8

Laborator 8 - ADO.

NET Entity Framework


Entity Framework permite aplicatiilor sa acceseze sis a modifice datele care sunt reprezentate ca
si entitati si relatii intr-un model conceptual. Entity Framework “traduce” interogarile peste
entitatile definite in modelul conceptual in interogari specific peste baza de date folosind
informatii din fisierele de mapare si de model. Cand se executa o interogare, rezultatele sunt
materializate in obiecte gestionate de Entity Framework.

Entity Framework vs. LINQ to SQL

Modelarea Datelor
Pentru a utiliza Entiy Framework trebuie create o entitate de tipul data model care defineste
modelul claselor si maparea lor peste schema bazei de date. Dup ace modelul a fost creat se pot
efectua operatii CRUD (create, read, update, delete) folosinf LINQ to Entities si Object Services.
Implementarea Database First Model
Creati un proiect nou Console Application in Visual Studio. Adaugati o noua conexiune din
View-> Server Explorer -> Data connection -> Add Connection.

Selectati Microsoft SQL Server

Introduceti . pentru a saccesa server-ul local si selectai baza de date. Creati conexiunea.
Crearea entitatii modeului conceptual.
Din solution explorer, selectati nodul proiectului, click dreapta -> add item si adaugati un model
ADO.NET Entity Data Model.
Selectati EF from Database pentru a face reverse engineering peste obiectele de la nivelul bazei
de date

.
Next -> Next si selctati toate tabelele, view-urile si procedurile stocate.
Finish.
In cadrul blocului NorthwindDataContext.edmx exista 2 fisiere cu extensia tt. Acestea sunt
responsabile de generarea automata a codului.
Operatiuni DML folosind Entiy Framework.
Query data:
static void QueryExample()
{
using (var context = new NORTHWNDEntities())
{
var results = from c in context.Customers
where c.CustomerID.StartsWith("A")
orderby c.CustomerID
select new
{
c.CustomerID,
c.CompanyName,
c.ContactName
};

foreach (var item in results)


{
Console.WriteLine("{0} \t {1} \t {2}",
item.CustomerID,
item.CompanyName,
item.ContactName);
}
}
}

Insert data:
static void InsertExample()
{
var context = new NORTHWNDEntities();
var newCategory = new Category()
{
CategoryName = "Fish"
};

context.Categories.Add(newCategory);
context.SaveChanges();

Console.WriteLine("Category inserted!");
}
Update data:
static void UpdateExample()
{
var context = new NORTHWNDEntities();
var fishCategory = (from c in context.Categories
where c.CategoryName.Equals("Fish")
select c).First();

fishCategory.CategoryName = "Seafood2";
context.SaveChanges();

Console.WriteLine("Category modified!");
}

Delete data:
Adaugati in metoda OnModelCreating din NorthwinddataModel.Context.cs:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Category>().HasOptional(c => c.Products)
.WithOptionalDependent()
.WillCascadeOnDelete(true);
}

Apoi in clasa program metoda:


static void DeleteExample()
{
var context = new NORTHWNDEntities();
var seaFoodCategory = (from c in context.Categories
where c.CategoryName.Equals("Seafood2")
select c).First();

context.Categories.Remove(seaFoodCategory);
context.SaveChanges();

Console.WriteLine("Category deleted!");
}

Modificari ale Data Model


Adaugati un nou table in baza de date:
CREATE TABLE [dbo].[Users]
(
[Username] NVARCHAR(50) NOT NULL PRIMARY KEY,
[DisplayName] NVARCHAR(MAX) NULL
)
Intrati in model designer si dati click dreapta pe un spatiu gol. Selectati Update Model from
Database…

Selectati tabelul dorit, apoi Finish.

S-ar putea să vă placă și