Web/Asp.net

회사 코드 공부

코딩은 내 밥줄 2022. 1. 17. 10:44

actionResult 쓸떄

viewBag 쓸때 사용함

예) 팝업창 열어서 get방식으로 num값을 보내 검색하기

controller

public ActionResult pop(int num)
        {
            ViewBag.Detail = service.MJDDGO(num);

            return View();
        }

Entities

 public MinJJT MJDDGO(int num)
        {
            using (IDbConnection dbConnection = base.OpenConnection("Default"))
            {
                DynamicParameters parameters = new DynamicParameters();
                parameters.Add("@num",num);
               
                var result = dbConnection.Query<MinJJT>(
                    sql: "MJDDGO",
                    param: parameters,
                    commandType: CommandType.StoredProcedure);

                return result.FirstOrDefault();
            }
        }

 

클래스를 반환함..

 

FirstOrDefault(): 여러 데이터 중 1개의 데이터가 무조건 조회된다.

예) 중복된 그룹 코드가 있는지 확인

controller

[HttpPost]
        public JsonResult SelectDuplication(string group_Code, string group_Name)
        {
            var group = service.SelectDuplication(group_Code, group_Name);
            return Json(ResponseMessage.Success(group));
        }

Entities

  public ProvisionGroup SelectDuplication(string group_Code, string group_Name)
        {
            using (IDbConnection dbConnection = base.OpenConnection())
            {
                DynamicParameters parameters = new DynamicParameters();
                parameters.Add("@GROUP_CODE", group_Code, DbType.String);
                parameters.Add("@GROUP_NAME", group_Name, DbType.String);

                var result = dbConnection.Query<ProvisionGroup>(
                    sql: "USP_DUPLICATION_SELECT",
                    param: parameters,
                    commandType: CommandType.StoredProcedure);

                return result.FirstOrDefault();
            }
        }

값이 하나만 들어가도 허용?

 

이때 minjjt와 ProvisionGroup는 class명으로 entity이름이다.

 

entity거칠때와 안거칠떄

public List<MinJJT> MinGOTT(string title, string wr, string content, string user)
        {
            using (IDbConnection dbConnection = base.OpenConnection("Default"))
            {
                DynamicParameters parameters = new DynamicParameters();
                parameters.Add("@title", title);
                parameters.Add("@wr", wr);
                parameters.Add("@content", content);
                parameters.Add("@user", user);

                var result = dbConnection.Query<MinJJT>(
                    sql: "MinGOTT",
                    param: parameters,
                    commandType: CommandType.StoredProcedure);

                return result.ToList();
            }

}

 

 public List<MinJJT> MinGOTT(MinJJT entity)
        {
            using (IDbConnection dbConnection = base.OpenConnection("Default"))
            {
                DynamicParameters parameters = new DynamicParameters();
                parameters.Add("@title", entity.title);
                parameters.Add("@wr", entity.wr);
                parameters.Add("@content", entity.content);
                parameters.Add("@user", entity.user);

                var result = dbConnection.Query<MinJJT>(
                    sql: "MinGOTT",
                    param: parameters,
                    commandType: CommandType.StoredProcedure);

                return result.ToList();
            }
        }

 

둘다 결과는 똑같다.

 

viewBag말고 model 써보기

 

  public ActionResult pop(int num)
        {          
            var viewModel=service.MJDDGO(num);

            return View(viewModel);
        }

 

html 상단 부분에 

@model art.LiveID.Domain.Entities.MinJJT 추가

이때 뒤에 art.LiveID.Domain.Entities.MinJJT은 모델의 경로

 

@Model.(가져오고싶은 정보 이름) 하면 정보가 나타남

 

참고자료: ASP.NET Core MVC에서 보기 | Microsoft Docs

 

질문**

둘의 차이는 뭐일까

 

    public MinJJT MJDDGO(int num)
        {
            using (IDbConnection dbConnection = base.OpenConnection("Default"))
            {
                DynamicParameters parameters = new DynamicParameters();
                parameters.Add("@num", num);

                var result = dbConnection.Query<MinJJT>(
                    sql: "MJDDGO",
                    param: parameters,
                    commandType: CommandType.StoredProcedure);

                return result.FirstOrDefault();
            }
        }


     public List<MinJJT> MJDDGOO(int num)
        {
            using (IDbConnection dbConnection = base.OpenConnection("Default"))
            {
                DynamicParameters parameters = new DynamicParameters();
                parameters.Add("@num",num);
               
                var result = dbConnection.Query<MinJJT>(
                    sql: "MJDDGOO",
                    param: parameters,
                    commandType: CommandType.StoredProcedure);

                return result.ToList();
            }
        }

 

답: 위에는 Entities를 반환하고, 아래는 Entities를 리스트 형식으로 반환한다.

즉 위에는 데이터 형식이 list형식이 아닌 하나의 데이터를 받아올때 사용한다

위 예) 디테일한 게시글은 데이터를 하나만 가져와도 되므로 사용.

아래 예) 댓글같이 중복 데이터가 많으면 list형식으로 넣어 가져온다.