인프런 커뮤니티 질문&답변

wltn07551님의 프로필 이미지
wltn07551

작성한 질문수

ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0

화면 단이 아닌 서비스 단에서 파라미터 추가

해결된 질문

작성

·

146

0

안녕하세요 선생님

소스에서 MSSQL로 파라미터를 전달하는 부분에 관련해서 질문드리고 싶습니다.

 

질문 1

지금은 view 단에서 파라미터를 받아서 가져가고 있는데 서비스단에서 파라미터를 추가할 수 있는 방법이 있을까요?

제가 이전에 하위 버전의 솔루션에서 사용했던 파라미터 전송 방식입니다.

        internal DataTable CommonSearch(string div, string strwhere)
        {
            string sSpName = "SP_Common";
            string gubun = "마스터 코드";

            string[] pParam = new string[3];
            pParam[0] = "@gb:" + gubun;
            pParam[1] = "@div:" + div;
            pParam[2] = "@strwhere:" + strwhere;

            DataTable dt = _bllSpExecute.SpExecuteTable(sSpName, gubun, pParam);

            return dt;
        }

기존에는 이런 방식을 차용해서 파라미터 전송을 했는데 지금 전달 주신 부분에서는 저 구분을 어떤 방식으로 보내야 할 지 감이 안 옵니다...

        //로그인 뷰
        public async Task<GetUserResponseDTO> GetUser(GetUserDTO getUserDTO)
        {
            // auto mapper로 {}사용하여 동적 개체 수령
            var configuration = new MapperConfiguration(cfg => { });
            //Response..DTO 생성후 Controller로 전달

            // Perform mapping
            Mapper mapper = new Mapper(configuration);
            Dictionary<string, object> dc = mapper.Map<GetUserDTO, Dictionary<string, object>>(getUserDTO);
            //-----> 이 부분에 삽입해서 전달 하는 방법?
            ProcCall procCall = new ProcCall();
            DataTable dt = await procCall.RequestProcedure("SP_Login", dc);

            GetUserResponseDTO dto = new GetUserResponseDTO();
            dto.gubun = "S";
            //dto.Id = (int)dt.Rows[0]["id"];
            dto.UserId = dt.Rows[0]["UserId"].ToString();
            dto.Password = dt.Rows[0]["Password"].ToString();
            return dto;
        }

여기 서비스 단에서 담아서 보낼 수 있을까요?

 

답변 1

1

개발자Park님의 프로필 이미지
개발자Park
지식공유자

안녕하세요.개발자park입니다.

 

[질문1=답변]

어떤 것을 원하시는지 모르겠지만요.

Dictionary<string, object> abc = new Dictionary<string, object>();

//-----> 이 부분에 삽입해서 전달 하는 방법?

abc.Add(키, 값);

키와 값 형태로 넣을 수 있긴 합니다.

보통 많이들 DAL호출전에 보낼 데이터를 정리합니다.

 

그리고 질문에 적으신 코드

DataTable dt = _bllSpExecute.SpExecuteTable(sSpName, gubun, pParam);
이러한 프로시저 호출방법으로 많이들 사용하기도해서 기존 소스코드를 사용하시는 것도 나쁘지 않습니다.

감사합니다.

 

wltn07551님의 프로필 이미지
wltn07551
질문자

감사합니다 add (키,값) 으로 시도해 보겠습니다!

wltn07551님의 프로필 이미지
wltn07551

작성한 질문수

질문하기