Documente Academic
Documente Profesional
Documente Cultură
Laborator 8
Laborator 8
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.
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
};
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);
}
context.Categories.Remove(seaFoodCategory);
context.SaveChanges();
Console.WriteLine("Category deleted!");
}