문제

나는 ado.net의 매개 변수를 많이 사용하지 않았습니다. Custom .NET Data Provider (SQLClient에 모델링)를 작성하고 있으며 DBPARAMETER에서 상속하는 매개 변수 클래스에서 IsNullable 속성을 구현해야합니다. 내 데이터 제공 업체는 저장 프로 시저를 지원하지 않으므로 입력 (대체 스타일) 매개 변수 만 지원합니다.

MSDN 문서는 "매개 변수가 NULL 값을 허용하는지 여부를 나타내는 값을 가져 오거나 설정하는 값을 표시하거나 설정한다는 점을 명시하고 있음을 명시합니다. 인터넷 검색은 많은 사람들이 거짓으로 설정할 수없는 일에 대해 혼란스러워하며, 매개 변수를 사용하는 것이 금지되지 않는다고 말하면서 예상했던 것처럼 무효 값이 될 것이라고 말합니다.

이를 바탕으로, 나는 아마도 불가능한 속성이 저장 프로 시저를 사용한 사용법과 관련이 있으며, 저장된 프로 시저의 매개 변수가 무효 일 수 있는지 여부는 매개 변수 값이 무효 일 수 있는지 여부를 생각합니다.

이 경우 프로 시저가 저장되지 않았으므로 내 구현은 다음과 같습니다.

        public override bool IsNullable { get { return false; } set {} }

SQLPARameter의 IsNullable 작품 구현 방법을 확인하기 위해 일부 테스트 코드를 사용하여 바이올린을 피할 수없는 경우 매개 변수를 사용하여 코드를 작성하는 경험이있는 사람이 IsNullable을 설명 할 수 있다면 감사합니다.

도움이 되었습니까?

해결책

불가능한 재산은 정보입니다. 코드의 한 부분이 매개 변수를 생성하고 다른 부분이 실제로 사용하는 경우 유용합니다. 예를 들어, 매개 변수는 데이터베이스에서 자동으로 파생 될 수 있으며,이 경우 프로그래머에게 널 값이 허용되는지 여부를 확인할 수 있도록 도움이됩니다.

이것은 불가능한 재산에 대한 나의 이해입니다. 나는 실제로 이것이 정확하다는 문서를 실제로 모른다.


이 견해를 지원하는 것은의 구현이 될 것입니다 신탁 Oracle.DataAccess.Client.OracleParameter 수업, 그들의 문서가 상태 :

isnullable

이 속성은 지원되지 않습니다.

그리고 MS 드라이버 또는 인용 된 Oracle 드라이버를 통해 Oracle 10 또는 11 또는 12와 인터페이스 할 때이 속성의 가치가 관련이 없다는 사실입니다.

다른 데이터베이스의 동작은 물론 다를 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top