정말 너무나 취약한 분야 데이터베이스 ㅋㅋ
하면 까먹고 보면 잊어버리고 이건 뭐 ㅋㅋㅋㅋ
여하턴 LINQ를 이용해서 두 테이블을 하나로 합치는 걸 해봤다.
여기서는 내부결합만 했고 외부결합은 다음 링크를 참조해보자.
[참조]
LINQでの内部結合・外部結合
여기서는 users 테이블에서 id, 이름, 성별, 연령 항목값과 typeresult 테이블에서 점수 항목값을 가져와서 JOIN 한 테이블을 만든 후, 이용자 개체에 값을 할당했다.
// 타겟이 되는 이용자id를 사용해서 두 테이블을 내부결합 하는 코드 with LINQ
// 참고:qiita.com/H-Takayama/items/0e0a962f9ebc59547e4d
// 다른 코드는 생략
var query = model.users.Join(
//결합 할 테이블명
model.typeresults,
//결합 하는 쪽의 결합조건
typeresults => typeresults.id,
//결합 되는 쪽의 결합조건
users => users.id,
//(결합되는 쪽을 가리키는 범위변수、결합하는 쪽을 가리키는 범위변수)=> NEW
(user, typeresult) => new
{
// 두 태이블을 결합함.
userid = user.id,
username = user.username,
generation = user.generation,
gender = user.gender,
typeid = typeresult.typeid,
dryscore = typeresult.dryscore,
hotscore = typeresult.hotscore,
humidscore = typeresult.humidscore,
coldscore = typeresult.coldscore,
}
)
.Select(jointable => new
{
// 결합한 결과를 가지고 새로운 테이블을 생성
userid = jointable.userid,
username = jointable.username,
generation = jointable.generation,
gender = jointable.gender,
typeid = jointable.typeid,
dryscore = jointable.dryscore,
hotscore = jointable.hotscore,
humidscore = jointable.humidscore,
coldscore = jointable.coldscore,
})
// 전체 결합조건을 설정
.Where(jointable => jointable.userid == targetUserId)
// 데이터의 중복제거
.FirstOrDefault();
// 객체에 결합시킨 테이블의 필드값을 넣음
userid = query.userid;
username = query.username;
generation = query.generation;
gender = query.gender;
typeid = query.typeid;
dryscore = (short)query.dryscore;
hotscore = (short)query.hotscore;
humidscore = (short)query.humidscore;
coldscore = (short)query.coldscore;
댓글
댓글 쓰기