Archive

0927 EWIG 부모클래스 04

피곤핑 2019. 9. 27. 11:40

제네릭 사용하여 부모클래스 만들기 

<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개)


병합!! 

분기 > 분기관리 > 병합원본,,?