White Whale Studio

ASP.net Core - Entity Framework Core - Stored Procedure Call / EF Core에서 프로시저 호출하기 본문

IT Engineering/WEB - Backend

ASP.net Core - Entity Framework Core - Stored Procedure Call / EF Core에서 프로시저 호출하기

glorymind 2020. 3. 30. 16:26
반응형

업무 도중 EF Core 환경에서 프로시저를 콜해보려고 했는데.. 잘 안되서리 ㅠㅜ

 

사수님께서 알려주신 깃헙 오픈소스입니다.

 

 

https://github.com/verdie-g/StoredProcedureEFCore

 

verdie-g/StoredProcedureEFCore

Entity Framework Core extension to execute stored procedures - verdie-g/StoredProcedureEFCore

github.com

 

우선은 

패키지 관리자 콘솔에서 

Install-Package StoredProcedureEFCore

 

위와같이 설치를 하시고 나서

using 문 넣어주시고

 

1
2
3
4
5
6
List<Model> rows = null;
 
ctx.LoadStoredProc("dbo.ListAll")
   .AddParam("limit", 300L)
   .AddParam("limitOut"out IOutParam<long> limitOut)
   .Exec(r => rows = r.ToList<Model>());
cs
 
위와 같이 작성해주시면 됩니다.
내가 받고자하는 데이터를 초기화하고
ctx는 DbContext 입니다. 사용하는 Context 명칭에 맞춰 쓰고
LoadStoredProc 괄호 안에는 Procedure 명칭을 넣고
프로시저의 파라미터는 AddParam에 알맞게 넣어주면 됩니다.
결과적으로 받을때는 마지막줄과같이 rows = r.ToList<Model>() 과같이 받으면 됩니다.

 

※ ㅇ주의 : 실제로 사용을 하다보니 이 받을때 데이터 타입을 잘 맞춰줘야합니다.
Procedure로 받아오다보니 모호한 데이터 타입의 경우 정확하게 맞추지 않으면 Return이 되긴되는데
특정 컬럼값이 null 값으로 들어온다던가 하는 현상이 있으니 데이터 타입에 유의해서 사용하셔야할 듯합니다.
 
반응형
Comments