Sunteți pe pagina 1din 8

Ministerul Educaţiei, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei


Departamentul Ingineria Software și Automatică

RAPORT
Lucrare de laborator Nr.4
Disciplina: Tehnologii Web
Tema: Accesarea, proiectarea bazelor de date
(EntityFramework)

A efectuat: st.gr. TI-195 Rotaru Dan

A verificat : asist. univ., Cristian Rusu

Chișinău 2021
Scopul: Accesarea, proiectarea bazelor de date (EntityFramework)

Sarcina: Crearea și proiectarea la o bază de date utilizând Entity Framework și


conectarea la proiectul ASP.NET.

Considerații teoretice
O bază de date este o colecție de date care este stocată în conformitate cu schema de date
proiectată. Definiția unei baze de date nu trebuie confundată cu definirea unui sistem de gestionare a
bazelor de date (DBMS). DBMS - un set de instrumente software folosite pentru a crea și administra o
bază de date. Acest laborator utilizează unul dintre sistemele de gestionare a bazelor de date client-
server, Microsoft SQL Server, dezvoltat de Microsoft.

Entity Framework este o tehnologie orientată pe obiecte bazată în .NET framework pentru
lucrul cu datele. Acest framework va permite lucrarea cu datele, indiferent de tipul acestora. Astfel,
dacă la nivel fizic, dezvoltatorul operează cu tabele, chei, apoi la nivelul furnizat de cadrul entității, el
lucrează cu obiecte, ceea ce simplifică foarte mult lucrul cu datele ca întreg. Conceptul central al
Entity Framework este conceptul unei entități, care este un set de date asociate unui anumit obiect.
Anume din această cauză tehnologia Entity Framework presupune lucrul cu obiectele, nu cu tabelele.

SQL (de la numele englez Structured Query Language - limbaj de interogare structurat - care
se pronunță [es kiu el]) este un limbaj de programare specific pentru manipularea datelor în
sistemele de manipulare a bazelor de date relaționale (RDBMS), iar la origine este un limbaj bazat pe
algebra relațională. Acesta are ca scop inserarea datelor, interogații, actualizare și ștergere,
modificarea și crearea schemelor, precum și controlul accesului la date. A devenit un standard în
domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru crearea, modificarea,
regăsirea și manipularea datelor de către SGBD-urile (Sistemele de Gestiune a Bazelor de Date)
relaționale. Pe lângă versiunile standardizate ale limbajului, există o mulțime de dialecte și variante,
unele proprietare, fiind specifice anumitor SGBD-uri și de asemenea conținând extensii pentru a
suporta SBD-urile (Sistemele de Baze de Date) obiectuale (obiectual-relaționale).

Setul de comenzi SQL


Comanda + Descriere:
SELECT este comanda cea mai utilizata ; este folosita pentru obtinerea datelor din bazele de date
INSERT aceste trei comenzi sunt utilizate pentru a introduce noi
UPDATE rinduri,pentru a schimba rindurile existente si stergerea
DELETE rindurilor nedorite din tabelele bazelor de date respective. (Ele sunt cunoscute in ansamblu
ca DML sau comenzi ale limbajului de manipulare a datelor.)
CREATE aceste trei comenzi sunt utilizate dinamic pentru a crea ,
ALTER utiliza si sterge orice structura de date,de exemplu,tabele,
DROP expuneri, indexi.(Ele sunt cunoscute sub numele colectiv DDL sau comenzi ale limbajelor de
definire a datelor).
GRANT aceste doua comenzi sunt utilizate pentru a da sau a lua
REVOKE drepturile de acces pentru bazele de date si structurile din Oracle.
N.B. Acestea sunt o parte a comenzilor SQL.
Fig. 1 Modificarea Web.config (conectarea la baza de date)

Fig. 2 UserLogin.cs – modelul pentru autentificare


Codul sursă – logica de logare/înregistrare
using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Linq;
using System.Web;
using AutoMapper;
using App.BusinessLogic.DBModel;
using App.Domain.Entities.User;
using App.Helpers;

namespace App.BusinessLogic.Core
{
public class UserApi
{
internal ULoginResp UserLoginAction(ULoginData data)
{

UDbTable result;
var validate = new EmailAddressAttribute();
if (validate.IsValid(data.Credential))
{
var pass = LoginHelper.HashGen(data.Password);
using (var db = new UserContext())
{
result = db.Users.FirstOrDefault(u => u.Email == data.Credential && u.
Password == pass);
}

if (result == null)
{
return new ULoginResp { Status = false, StatusMsg = "Email-
ul sau parola dvs. este greșită!" };
}

using (var todo = new UserContext())


{
result.LastIp = data.LoginIp;
result.LastLogin = data.LoginDateTime;
todo.Entry(result).State = EntityState.Modified;
todo.SaveChanges();
}

return new ULoginResp { Status = true };


}
else
{
var pass = LoginHelper.HashGen(data.Password);
using (var db = new UserContext())
{
result = db.Users.FirstOrDefault(u => u.Username == data.Credential &&
u.Password == pass);
}
if (result == null)
{
return new ULoginResp { Status = false, StatusMsg = "Login-
ul sau parola dvs. este greșită!" };
}

using (var todo = new UserContext())


{
result.LastIp = data.LoginIp;
result.LastLogin = data.LoginDateTime;
todo.Entry(result).State = EntityState.Modified;
todo.SaveChanges();
}

return new ULoginResp { Status = true };


}
}

internal URegResp UserRegAction(URegData data)


{

UDbTable result;
using(var db = new UserContext())
{
var validate = new EmailAddressAttribute();
if (!validate.IsValid(data.Email))
{
return new URegResp { Status = false, StatusMsg = "Email-
ul nu este valid!" };
}
if (data.Email.Length > 29)
{
return new URegResp { Status = false, StatusMsg = "Email-
ul este prea lung!" };
}
//Username length
if (data.Username.Length > 29)
{
return new URegResp { Status = false, StatusMsg = "Login-
ul este prea lung!" };
}
if (data.Username.Length < 5)
{
return new URegResp { Status = false, StatusMsg = "Login-
ul este prea scurt!" };
}
//Password length
if (data.Password.Length > 49)
{
return new URegResp { Status = false, StatusMsg = "Parola este prea lu
ngă!" };
}
if (data.Password.Length < 8)
{
return new URegResp { Status = false, StatusMsg = "Parola este prea sc
urtă!" };
}

//Password match
if (data.Password != data.Repeat_Password)
{
return new URegResp { Status = false, StatusMsg = "Parolele nu corespu
nd!" };
}

var pass = LoginHelper.HashGen(data.Password);

//check if email is used


result = db.Users.FirstOrDefault(u => u.Email == data.Email);
if(result != null)
{
return new URegResp { Status = false, StatusMsg = "Email-
ul dat deja este folosit!" };
}
result = db.Users.FirstOrDefault(u => u.Username == data.Username);
if (result != null)
{
return new URegResp { Status = false, StatusMsg = "Acest username deja
este folosit!" };
}

db.Users.Add(new UDbTable
{
Username = data.Username,
Email = data.Email,
Password = pass,
LastLogin = DateTime.Now,
LastIp = data.LoginIp
});
db.SaveChanges();

return new URegResp { Status = true };


//return new URegResp { Status = false, StatusMsg = "Wrong username or pas
sword!" };
//return result;
}

internal HttpCookie Cookie(string loginCredential)


{
var apiCookie = new HttpCookie("X-KEY")
{
Value = CookieGenerator.Create(loginCredential)
};

using (var db = new SessionContext())


{
Session curent;
var validate = new EmailAddressAttribute();
if (validate.IsValid(loginCredential))
{
curent = (from e in db.Sessions where e.Username == loginCredential se
lect e).FirstOrDefault();
}
else
{
curent = (from e in db.Sessions where e.Username == loginCredential se
lect e).FirstOrDefault();
}

if (curent != null)
{
curent.CookieString = apiCookie.Value;
curent.ExpireTime = DateTime.Now.AddMinutes(60);
using (var todo = new SessionContext())
{
todo.Entry(curent).State = EntityState.Modified;
todo.SaveChanges();
}
}
else
{
db.Sessions.Add(new Session
{
Username = loginCredential,
CookieString = apiCookie.Value,
ExpireTime = DateTime.Now.AddMinutes(60)
});
db.SaveChanges();

}
}

return apiCookie;
}

internal UserMinimal UserCookie(string cookie)


{
Session session;
UDbTable curentUser;

using (var db = new SessionContext())


{
session = db.Sessions.FirstOrDefault(s => s.CookieString == cookie && s.Ex
pireTime > DateTime.Now);
}

if (session == null) return null;


using (var db = new UserContext())
{
var validate = new EmailAddressAttribute();
if (validate.IsValid(session.Username))
{
curentUser = db.Users.FirstOrDefault(u => u.Email == session.Username)
;
}
else
{
curentUser = db.Users.FirstOrDefault(u => u.Username == session.Userna
me);
}
}

if (curentUser == null) return null;


Mapper.Initialize(cfg => cfg.CreateMap<UDbTable, UserMinimal>());
var userminimal = Mapper.Map<UserMinimal>(curentUser);

return userminimal;
}
}
}

Concluzie
În final pot spune că Entity Framework este o tehnologie orientată pe obiecte bazată în .NET
framework pentru lucrul cu datele. Cu ajutorul ei putem face interacțiunea cu baza de date.

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

  • TW Lab5
    TW Lab5
    Document3 pagini
    TW Lab5
    Dan
    Încă nu există evaluări
  • TW Lab 5
    TW Lab 5
    Document4 pagini
    TW Lab 5
    danielploaia
    Încă nu există evaluări
  • AMOO - Proiect de An
    AMOO - Proiect de An
    Document4 pagini
    AMOO - Proiect de An
    Dan
    Încă nu există evaluări
  • Lab 3 Ppe
    Lab 3 Ppe
    Document8 pagini
    Lab 3 Ppe
    Anastasia Gherman
    Încă nu există evaluări
  • TW Lab2
    TW Lab2
    Document4 pagini
    TW Lab2
    Dan
    Încă nu există evaluări
  • Laboratorul 2 PPE
    Laboratorul 2 PPE
    Document4 pagini
    Laboratorul 2 PPE
    crismaruion
    Încă nu există evaluări
  • APA - Proiect de Curs
    APA - Proiect de Curs
    Document43 pagini
    APA - Proiect de Curs
    Dan
    Încă nu există evaluări
  • AI-191 Medinschi Ion SO4
    AI-191 Medinschi Ion SO4
    Document5 pagini
    AI-191 Medinschi Ion SO4
    Carolin
    Încă nu există evaluări
  • SecrieruAndrei Amoo Lab5
    SecrieruAndrei Amoo Lab5
    Document6 pagini
    SecrieruAndrei Amoo Lab5
    andy secrieru
    Încă nu există evaluări
  • Grafica Laborator Nr.3
    Grafica Laborator Nr.3
    Document5 pagini
    Grafica Laborator Nr.3
    Cebotari Ion
    100% (2)
  • Lab 2 MMC Boj
    Lab 2 MMC Boj
    Document12 pagini
    Lab 2 MMC Boj
    Andrian Brinzan
    Încă nu există evaluări
  • POO Lab7
    POO Lab7
    Document6 pagini
    POO Lab7
    Dani Ela
    Încă nu există evaluări
  • Raport 5 CDE
    Raport 5 CDE
    Document7 pagini
    Raport 5 CDE
    crismaruion
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document10 pagini
    Lab 1
    Ion Cornea
    Încă nu există evaluări
  • Ppe 1
    Ppe 1
    Document5 pagini
    Ppe 1
    Victor Lungu
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document4 pagini
    Lab 6
    Егор Казаков
    Încă nu există evaluări
  • Lab 7 Somipp
    Lab 7 Somipp
    Document5 pagini
    Lab 7 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Lab 7 Cazacu POO
    Lab 7 Cazacu POO
    Document8 pagini
    Lab 7 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Raport: La Disciplina Metode Și Modele de Calcul 1
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Document9 pagini
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Anya Mr
    Încă nu există evaluări
  • Lab7 POO
    Lab7 POO
    Document10 pagini
    Lab7 POO
    Grosu Elena
    Încă nu există evaluări
  • TW Lab 6
    TW Lab 6
    Document6 pagini
    TW Lab 6
    DanuIepuras
    Încă nu există evaluări
  • LFA Lab - 1
    LFA Lab - 1
    Document10 pagini
    LFA Lab - 1
    RoscaFlorin
    100% (1)
  • Lab 4
    Lab 4
    Document12 pagini
    Lab 4
    Fil Gorea
    Încă nu există evaluări
  • Lab1 GC
    Lab1 GC
    Document8 pagini
    Lab1 GC
    Andrei Barbalat
    Încă nu există evaluări
  • Lab2 Somipp
    Lab2 Somipp
    Document6 pagini
    Lab2 Somipp
    Iov Albu
    Încă nu există evaluări
  • Lab 4 MN
    Lab 4 MN
    Document3 pagini
    Lab 4 MN
    nn nnn
    Încă nu există evaluări
  • Lab 5
    Lab 5
    Document7 pagini
    Lab 5
    Dorin Nicoara
    Încă nu există evaluări
  • SOMIPP Lab4
    SOMIPP Lab4
    Document7 pagini
    SOMIPP Lab4
    Dan
    Încă nu există evaluări
  • Grafica Laborator Nr.2
    Grafica Laborator Nr.2
    Document8 pagini
    Grafica Laborator Nr.2
    Cebotari Ion
    100% (1)
  • Rezolvarea Numerica A Sistemelor de Ecuatii Liniare
    Rezolvarea Numerica A Sistemelor de Ecuatii Liniare
    Document8 pagini
    Rezolvarea Numerica A Sistemelor de Ecuatii Liniare
    Valentin I. Marius
    Încă nu există evaluări
  • Lab.6 FC
    Lab.6 FC
    Document3 pagini
    Lab.6 FC
    Cristina Florea
    Încă nu există evaluări
  • Lab 1 PPE
    Lab 1 PPE
    Document4 pagini
    Lab 1 PPE
    King 79
    Încă nu există evaluări
  • Amoo 6
    Amoo 6
    Document6 pagini
    Amoo 6
    Mihai Ciubotaru
    Încă nu există evaluări
  • Laborator-2mmc Balan Ion
    Laborator-2mmc Balan Ion
    Document12 pagini
    Laborator-2mmc Balan Ion
    Ion Bn
    Încă nu există evaluări
  • LL1 Baze de Date
    LL1 Baze de Date
    Document10 pagini
    LL1 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • Lucrarea de Laborator NR 4 POO
    Lucrarea de Laborator NR 4 POO
    Document10 pagini
    Lucrarea de Laborator NR 4 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Lab1 Pam
    Lab1 Pam
    Document9 pagini
    Lab1 Pam
    Ion Popescu
    100% (2)
  • Lab 4
    Lab 4
    Document6 pagini
    Lab 4
    violina
    Încă nu există evaluări
  • TW Atestare
    TW Atestare
    Document4 pagini
    TW Atestare
    yamahahohnerc70
    Încă nu există evaluări
  • Lab2 MN CR-212 V14
    Lab2 MN CR-212 V14
    Document8 pagini
    Lab2 MN CR-212 V14
    Tabureanu Marian
    Încă nu există evaluări
  • CR-191 MIPI Axenti Alina Lab4
    CR-191 MIPI Axenti Alina Lab4
    Document6 pagini
    CR-191 MIPI Axenti Alina Lab4
    Alina Axenti
    Încă nu există evaluări
  • Lab1 Apa
    Lab1 Apa
    Document15 pagini
    Lab1 Apa
    SlavicCaldare
    Încă nu există evaluări
  • Somipp Linux 3 UTM
    Somipp Linux 3 UTM
    Document7 pagini
    Somipp Linux 3 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • ASDN2
    ASDN2
    Document6 pagini
    ASDN2
    Viktor Dobrovolschi
    Încă nu există evaluări
  • Lab 4 Apa
    Lab 4 Apa
    Document21 pagini
    Lab 4 Apa
    crismaruion
    Încă nu există evaluări
  • Lab APA 4
    Lab APA 4
    Document12 pagini
    Lab APA 4
    AlionaCrigan
    Încă nu există evaluări
  • Metode Si Modele de Calcul
    Metode Si Modele de Calcul
    Document11 pagini
    Metode Si Modele de Calcul
    I LOVE ME
    Încă nu există evaluări
  • LL2 Baze de Date
    LL2 Baze de Date
    Document15 pagini
    LL2 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • ASAD Lab03 Raport
    ASAD Lab03 Raport
    Document6 pagini
    ASAD Lab03 Raport
    Mihai U
    Încă nu există evaluări
  • Somipp Linux 2 UTM
    Somipp Linux 2 UTM
    Document7 pagini
    Somipp Linux 2 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • Iepuras Daniel Lab 1 TS
    Iepuras Daniel Lab 1 TS
    Document4 pagini
    Iepuras Daniel Lab 1 TS
    DanuIepuras
    Încă nu există evaluări
  • LAB1PSR
    LAB1PSR
    Document9 pagini
    LAB1PSR
    Cristian
    Încă nu există evaluări
  • AMOO Lab2.Use Case
    AMOO Lab2.Use Case
    Document5 pagini
    AMOO Lab2.Use Case
    Dorin Gribincea
    Încă nu există evaluări
  • Laboratorul Cercetari
    Laboratorul Cercetari
    Document5 pagini
    Laboratorul Cercetari
    Buinovschi Corneliu
    Încă nu există evaluări
  • Laborator nr6 CDE
    Laborator nr6 CDE
    Document5 pagini
    Laborator nr6 CDE
    Vlad Racu
    Încă nu există evaluări
  • Aplicatii Java FXML Cu Baze de Date
    Aplicatii Java FXML Cu Baze de Date
    Document23 pagini
    Aplicatii Java FXML Cu Baze de Date
    Diana Hartan
    Încă nu există evaluări
  • Moștenire
    Moștenire
    Document7 pagini
    Moștenire
    Marcica Dranga
    Încă nu există evaluări
  • Curs Complex PHP Si MySQL
    Curs Complex PHP Si MySQL
    Document74 pagini
    Curs Complex PHP Si MySQL
    emyman
    Încă nu există evaluări
  • Exemplu Raport
    Exemplu Raport
    Document27 pagini
    Exemplu Raport
    Ion Popescu
    Încă nu există evaluări
  • Exemplu Raport
    Exemplu Raport
    Document27 pagini
    Exemplu Raport
    Fil Gorea
    Încă nu există evaluări
  • PAM Lab 2 Rotaru Dan
    PAM Lab 2 Rotaru Dan
    Document17 pagini
    PAM Lab 2 Rotaru Dan
    Dan
    Încă nu există evaluări
  • PAM Lab 1 Rotaru Dan
    PAM Lab 1 Rotaru Dan
    Document3 pagini
    PAM Lab 1 Rotaru Dan
    Dan
    Încă nu există evaluări
  • APA - Proiect de Curs
    APA - Proiect de Curs
    Document43 pagini
    APA - Proiect de Curs
    Dan
    Încă nu există evaluări
  • PAM Lab 4 Rotaru Dan
    PAM Lab 4 Rotaru Dan
    Document5 pagini
    PAM Lab 4 Rotaru Dan
    Dan
    Încă nu există evaluări
  • APA - Proiect de Curs Prezentare
    APA - Proiect de Curs Prezentare
    Document9 pagini
    APA - Proiect de Curs Prezentare
    Dan
    Încă nu există evaluări
  • Lucrare de Laborator Nr.2 CDE
    Lucrare de Laborator Nr.2 CDE
    Document4 pagini
    Lucrare de Laborator Nr.2 CDE
    Dan
    Încă nu există evaluări
  • Lab5 LFA Rotaru Dan
    Lab5 LFA Rotaru Dan
    Document5 pagini
    Lab5 LFA Rotaru Dan
    Dan
    Încă nu există evaluări
  • LFA Lab1
    LFA Lab1
    Document8 pagini
    LFA Lab1
    Dan
    Încă nu există evaluări
  • Lucrare de Laborator Nr.1 CDE
    Lucrare de Laborator Nr.1 CDE
    Document3 pagini
    Lucrare de Laborator Nr.1 CDE
    Dan
    Încă nu există evaluări
  • Lab2 LFA (Rotaru Dan)
    Lab2 LFA (Rotaru Dan)
    Document4 pagini
    Lab2 LFA (Rotaru Dan)
    Dan
    Încă nu există evaluări
  • Lucrare de Laborator Nr.4 CDE
    Lucrare de Laborator Nr.4 CDE
    Document8 pagini
    Lucrare de Laborator Nr.4 CDE
    Dan
    Încă nu există evaluări
  • Lucrare de Laborator Nr.3 CDE
    Lucrare de Laborator Nr.3 CDE
    Document5 pagini
    Lucrare de Laborator Nr.3 CDE
    Dan
    Încă nu există evaluări
  • Laborator-3 MMC
    Laborator-3 MMC
    Document4 pagini
    Laborator-3 MMC
    Dan
    Încă nu există evaluări
  • Lab2 LFA (Rotaru Dan)
    Lab2 LFA (Rotaru Dan)
    Document4 pagini
    Lab2 LFA (Rotaru Dan)
    Dan
    Încă nu există evaluări
  • Lucrare de Laborator Nr.3 LFA
    Lucrare de Laborator Nr.3 LFA
    Document3 pagini
    Lucrare de Laborator Nr.3 LFA
    Dan
    Încă nu există evaluări
  • Lab4 LFA
    Lab4 LFA
    Document3 pagini
    Lab4 LFA
    Dan
    Încă nu există evaluări
  • Lab4 LFA
    Lab4 LFA
    Document3 pagini
    Lab4 LFA
    Dan
    Încă nu există evaluări
  • Laborator-1 MMC
    Laborator-1 MMC
    Document11 pagini
    Laborator-1 MMC
    Dan
    Încă nu există evaluări
  • Lab5 LFA Rotaru Dan
    Lab5 LFA Rotaru Dan
    Document5 pagini
    Lab5 LFA Rotaru Dan
    Dan
    Încă nu există evaluări
  • Laborator-2 MMC
    Laborator-2 MMC
    Document18 pagini
    Laborator-2 MMC
    Dan
    Încă nu există evaluări
  • LFA Lab1
    LFA Lab1
    Document8 pagini
    LFA Lab1
    Dan
    Încă nu există evaluări
  • POO - Raport Lab6
    POO - Raport Lab6
    Document7 pagini
    POO - Raport Lab6
    Dan
    Încă nu există evaluări
  • Lucrare de Laborator Nr.3 LFA
    Lucrare de Laborator Nr.3 LFA
    Document3 pagini
    Lucrare de Laborator Nr.3 LFA
    Dan
    Încă nu există evaluări
  • POO - Raport Lab5
    POO - Raport Lab5
    Document7 pagini
    POO - Raport Lab5
    Dan
    Încă nu există evaluări
  • POO - Raport Lab7
    POO - Raport Lab7
    Document3 pagini
    POO - Raport Lab7
    Dan
    Încă nu există evaluări
  • POO - Raport Lab4
    POO - Raport Lab4
    Document7 pagini
    POO - Raport Lab4
    Dan
    Încă nu există evaluări
  • POO - Raport Lab2
    POO - Raport Lab2
    Document13 pagini
    POO - Raport Lab2
    Dan
    Încă nu există evaluări
  • POO - Raport Lab3
    POO - Raport Lab3
    Document12 pagini
    POO - Raport Lab3
    Dan
    Încă nu există evaluări
  • POO - Raport Lab1
    POO - Raport Lab1
    Document6 pagini
    POO - Raport Lab1
    Dan
    Încă nu există evaluări