In EF 4.xx operatiile de tip CRUD sutn foarte usor de executat. Dar ce se intampla daca avem nevoie sa executam o procedura stocata. De exemplu dorim sa populam un tabel, iar pentru acest lucru trebuie sa rulam o proceduta stocata.
Pentru acest lucru avem doua posibitati.
Prima din ele este sa ne cream un obiect de tip SqlQuery care poate sa contina orice comanda sql, iar apoi sa il executam.
In cazul in care comanda pe care o executam nu ne returneaza valori si nu ne intereaza ca data contextul sa fie aware ca datele au fost modificate putem sa folosim comanda
Daca folosim EF 4.xx si Code-First aceasta este singura posibilitate sa executam proceduri stocate.
Pentru acest lucru avem doua posibitati.
Prima din ele este sa ne cream un obiect de tip SqlQuery care poate sa contina orice comanda sql, iar apoi sa il executam.
DataContext.DatabaseAceasta modalitate este perfecta cand stocata/comanda pe care o executam ne returneaza date. Cand folosim aceasta comanda, data context stie ca datele au fost modificate.
.SqlQuery<int>("EXEC PopulateTable @param1 @param2",
new SqlParameter("param1", "100"),
new SqlParameter("param2", "1/12/2011"));
In cazul in care comanda pe care o executam nu ne returneaza valori si nu ne intereaza ca data contextul sa fie aware ca datele au fost modificate putem sa folosim comanda
ExecuteSqlCommand.DataContext.DatabaseData contextul o sa stie de modificari doar cand o facem reload la date.
.ExecuteSqlCommand("EXEC PopulateTable @param1 @param2",
new SqlParameter("param1", "100"),
new SqlParameter("param2", "1/12/2011"));
Daca folosim EF 4.xx si Code-First aceasta este singura posibilitate sa executam proceduri stocate.
Poate stored procedure ...
ReplyDelete