선택 쿼리에 예상 열이 포함되지 않은 경우 Dapper가 예외를 throw하지 않습니다.

ado.net dapper mapping

문제

Dapper를 다음과 같이 사용하는 경우 :

connection.Query("select a from Foo").Select(x => new Foo(x.a, x.b));

내가 선호하는 것은 null을 반환하는 것이 아니라 xb에 액세스하려고 할 때 예외가 발생한다는 것입니다.

null을 반환하는 것은 설계 상 (예 : 성능상의 이유로) 이해할 수 있으며 이상적으로 누락 된 데이터를 표시하는 테스트가 존재할 수도 있지만, 둘 다 가질 수 있다면 이는 가치있는 안전의 추가 레이어처럼 보입니다.

또는 필요한 열이 누락되었을 때 예외를 throw하는 방식으로 생성자를 사용하여 객체를 인스턴스화하는 다른 방법이 있습니까?

인기 답변

예. Dapper는 종종 낙관적 인면에서 잘못한 것처럼 보입니다. 모든 오류는 런타임 오류이며,이 경우처럼 오류가되고 싶은 일부 내용이 곧바로 표시됩니다.

QueryFirst를 사용 했습니까? 프로그램을 실행할 필요조차 없습니다. 이것은 타이핑 할 때 잡힐 것입니다. 생성 된 POCO를 통해 쿼리 결과에 액세스하므로 열이 쿼리에 없으면 POCO에 없습니다. select * 를 사용 select * 나중에 DB에서 열을 삭제하면 모든 쿼리가 다시 생성 될 수 있으며 컴파일 오류는 코드에서 삭제 된 열에 액세스하려고 시도하는 행을 가리 킵니다.

여기에서 다운로드 하십시오 .

여기에 짧은 비디오 프레 젠 테이션.

면책 조항 : QueryFirst



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.