Entity Framework executa procedura stocata

entity-framework

(Alexandru Tudor) #1

Sa-l ia naiba de Entity Framework daca imi iese ceva cu el :)))

am creat o procedura stocata, bineinteles pentru ca era prea complicat sa fac un calcul cu vreo 12 parametri in EF si nu stiu cum sa o execut :)))

Asp.Net Core Web API, 9 parametrii vin din Angular, si ma plimb cu ei prin casa pentru ca nu stiu sa-i leg la baza de date :slight_smile:

var rating = mainContext.SqlQuery(“RatingCalculator”, param1, param2, param3, …, param9);

mainContext e injectat in constructor

cica An object reference is required for the non-static field, method, or property 'CalculateRating.mainContext'

inteleg, are nevoie sa ii specific o tabela, o entitate, ceva … dar eu vreau doar sa-mi execute procedura din baza de date :triumph:

ah, sa nu uit. toata treaba asta vreau sa-mi returneze un decimal inapoi in metoda :sweat:

merci :kissing:


(cosmos) #2

Desi nu stiu daca te ajuta, asa executam eu o sp din entity framework

 todoContext.UsersTodo
 .FromSql("EXECUTE uspAddInUserTodos {0}, {1}", getId, getTodoId)
.ToList();

Acei {0}, {1} sunt parametrii procedurii stocate
Nota: Foloseam asp.net core versiuna 1.ceva

PS: Are nevoie de new pe undeva. Cel putin asa cred


(Alexandru Tudor) #3

nu inteleg de ce trebuie sa-i specific o tabela, sau cum scap de asta :)) adica, in exemplul tau… UsersTodo?!? pentru ca am un ditamai queryul de 114 randuri legat de mai multe tabele.

ops: am omis sa spun (si sa vad) ca metoda mea este de tip “public static decimal”. Problema este ca daca elimin tipul static, n-o mai pot apela in clasa in care am nevoie.


(cosmos) #4

http://www.entityframeworktutorial.net/efcore/working-with-stored-procedure-in-ef-core.aspx

https://nodogmablog.bryanhogan.net/2018/03/entity-framework-core-calling-stored-procedures-and-returning-to-a-model/

Al doilea link este mai nou (2018)
Pare ca trebuie sa specifci tabela


(Adrian Mos) #5

Nu ai vreo problema silly de genul incerci sa apelezi un field non-static injectat prin constructor intr-o metoda statica?


(cosmos) #6

Instanta a clasei prin Dependency Injection si saved by ado net (pt procedura stocata) :smiley: