회사 코드 공부
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형식으로 넣어 가져온다.