제네릭 사용하여 부모클래스 만들기
<T> where T : (T에 들어갈수 있는 타입을 써주기)
: class => T는 참조타입
1. 부모클래스 만들기
2. 자식 클래스에 상속시키기
: EntityData<Arist>
3. 부모클래스에 함수 옮기기
- 옮기고 T타입, Set<T>() 메소드로 다 바꿔줌!!!!!!!!!!!!!!
>> 코드가 대폭 줄어든 것을 알 수 있음!!! ..
제네릭을 잘 활용하자
- 오버로드를 하여 매개변수가 있는 함수를 만들어봅시다
==> 당연히 테스트 실패
> 1.
> 2.
> 3. 그냥 받아들이세요.......
>> 4. 하나로 합쳐벌였음,,,,, ㄷㄷㄷ
>> 매개변수가 없는건 여기 있으니 괜찮음
-> 그런데 에러가 나벌임 ㅠㅠㅠ NULL이 들어가기 떄문에
--> 그렇기때문에 무조건 TRUE가 반환되는 람다식의 코드를 추가해주어야함!!!!
- X값은 큰 의미가없음 그냥 구색만 맞춰준 것
= 다시 테스트 해봄 -> 쨘!
- 이런것들은 개발자들이 개발을 하면서 만든 코드기 떄문에 책에두없고,,,, 알기 힘든것임
playlistTrack 테이블의경우 어떤 의미를 가지지않고 단순이 매핑만을 하는 테이블이므로 edmx가 없음!
그래서 dummy컬럼을 하나 추가해줌 (얘는 pk가 두개있음 )
-> 아무튼 이작업 후에 edmx 모두 삭제후 다시 복원해서 켜놓으면 playlistTrack 테이블이 들어온 것을 알 수있음
Q. 업데이트문에서,,,,
업데이트가 현재시각이 아닌 무조건 느낌표 세개가 들어가게끔 동작이 바뀌게끔,,,, 만들어라,,!
키워드 : 오버라이드
Update 오버라이드 함수를 만들어보자
c#이 알아서 업데이트 오버라이드 함수를 만들어줌
--> 우리는 이렇게 만들었었는데...
** 사실은 이렇게만 하면 됏음!!! ***
OrderBy 함수를 만들어보자!
ctrl+shift+space = 타입을 알 수 있음
* 기본값이 제공되는 매개변수가 제공안되는 매개변수의 뒤에 오면 안됨!!!!! - 에러나는 이유
* 오름차순 내림차순에 따라
-> Get은 조건도 넣을 수 있고 정렬도 넣을 수 있음
skip, take == (아래코드) 앞에두개는 건너띄고 3개만 가져오라는 뜻 (개신기) -> 페이지같은걸 구현할때 사용
==> 위처럼 하면 매개변수가 5개나 넣어야되기때문에 컴파일 에러가 남!
* 그렇기 때문에 null 처리를 해주어야함
* 그런데 skip같은경우 int형이기 때문에 null 처리가 안되기 때문에 nullable 처리를 해주어야함 ! -> int?
=> 그래도 여전히 동작이 안됨 -> 오버로드를 해주자!
- > 이때 Get으로만 했는데 컴파일 에러 떠서 Get<T>를 해주었고 내부적인 코드를 만들어 주기위해 GetCore<T>로 이름 바꾸어줬음!
+) 매개 변수가 없는 함수일 때는
리스트중 맨앞꺼 가져오는 함수
아티스트의 아이디를 키로,,하고,,,,, 머시기 하는 딕셔너리를 만들어야함
지금 앨범 테이블에서 아티스트 이름을 갖고 오고 싶음!
-> 위에서 Dictionary<int, string>이 조금 번거롭다면,,,, var로 타입추론을!
=>> 쨘! 근데 지금 여기서 문제점은 쿼리가 두번 발생한다는 점 (그림자져있는 코드 2개)
병합!!
분기 > 분기관리 > 병합원본,,?
'Archive' 카테고리의 다른 글
1001 웹 API (0) | 2019.10.01 |
---|---|
0927 이제 진짜 EWIG 데이터 베이스를 써보자 05 (0) | 2019.09.27 |
0927 ORM 기술을 사용한 EWIG 03 (0) | 2019.09.27 |
0927 using문과 IDisposable 오류 (0) | 2019.09.27 |
0926 C#과 DB 연동 프로그래밍 : EWIG 02 (0) | 2019.09.26 |