나는 많은 정적 유틸리티 클래스를 가진 C# dll을 가지고있다. 그들은 모두 데이터베이스 액세스가 필요하며, 현재 각 클래스는 자체 연결을 가지고 있습니다. 이것은 번거 로움이되어 가고 있고 하나의 연결 제공자를 원합니다. 그래서 클래스는 ConnProvider와 같은 것을 할 수 있습니다 .Query (...) ConnProvider는 모든 유틸리티 클래스가 액세스 할 수있는 정적 클래스입니다. 나는 ConnProvider가 일종의 연결 풀을 관리해야한다고 생각하지만,이 방법을 구현하는 것이 올바른지, 내부적으로 어떻게 보이는지에 대해서는 확실하지 않습니다. 나는 올바른 길을 가고 있는가? 이것은 웹 기반이 아니며 thread-safety는 필수적이지는 않지만 (미래에는 좋을 것입니다.)이 DLL을 사용하는 앱/기계는 소수에 불과하므로 단순화하는 데 도움이됩니다.정적 클래스에서 데이터베이스 연결을 공유하는 적절한 설계?
답변
상황에 따라 모든 도우미 클래스가 연결되어있는 ConnectionBase의 하위 클래스로 만들 수 있습니까?
"ConnProvider"가 각 쿼리에 대해 새 연결을 만들고 ADO.NET 및 RDBMS에서 연결 풀링을 관리하도록하십시오. 귀하를 대신하여 이미 설정되고 최적화되어 있습니다.
자신 만의 연결 풀을 작성하면 안됩니다. 프레임 워크의 것이 충분히 좋습니다.
작성한 모든 연결 제공 업체 유틸리티는 실제로 가지고있는 구성 정보를 사용하여 연결을 작성해야합니다. 기본적으로 쿼리 문자열을 캡슐화합니다.
쿼리를 수행 할 때마다 공급자에게 전화를 걸어 연결을 만들고 작업을 수행 한 다음 연결을 닫습니다. 프레임 워크가 실제 연결 풀링을 처리하도록하십시오.
명확히하기 위해 내장 된 연결 풀링을 사용하기 위해 특별히해야 할 일이 있습니까? 또는 내 conn 문자열이 동일하면 자동입니까? 문제는 몇 가지 도우미 함수를 구현하는 SqlConnection에 대한 래퍼가 있다는 것입니다. 따라서이 권한을 얻는 방법을 모르겠습니다. –
자동입니다. 래퍼 유형이 정말로 필요합니까? 어떤 주를 추가합니까? 그렇지 않으면 C# 3을 사용하는 경우 확장 메서드를 사용하는 것이 좋습니다. –
연결 풀링을 직접 처리하지 마십시오. 닷넷은 당신보다 더 나아질 것입니다. 연결을위한 일종의 싱글 - 톤 (singleton-pattern) db- 클래스로 이것을 처리 할 수 있습니다.
- 1. 데이터베이스 연결을 공유하는 Asp.net ajax 업데이트 패널
- 2. 클래스 간의 데이터베이스 연결을 공유하는 가장 좋은 방법
- 3. 데이터베이스 필터링을위한 데이터베이스 설계
- 4. 데이터베이스 설계
- 5. 데이터베이스 설계
- 6. 데이터베이스 설계
- 7. Android 앱의 모든 활동간에 데이터베이스 연결을 공유하는 서비스를 만드시겠습니까?
- 8. PHP : 기존 데이터베이스 연결을 정적 클래스 메서드에 전달하는 방법?
- 9. 정적 메서드의 적절한 사용
- 10. 추천 엔진 데이터베이스 설계?
- 11. 이미지 용 데이터베이스 설계
- 12. 데이터베이스 설계 및 성능
- 13. MongoDB :: 데이터베이스 설계
- 14. 데이터베이스 설계 - 설명
- 15. 여러 사용자를위한 데이터베이스 설계
- 16. BCNF 분해 (데이터베이스 설계)
- 17. 데이터베이스 설계 질문
- 18. 데이터베이스 테이블 설계 질문
- 19. 장고 데이터베이스 설계
- 20. 재고는 데이터베이스 설계
- 21. Bigtable 데이터베이스 설계 이론
- 22. 특정 데이터베이스 설계 질문
- 23. 데이터베이스 설계 질문
- 24. 파일 구조를위한 데이터베이스 설계
- 25. 학교 데이터베이스 설계 필요
- 26. 상속 및 데이터베이스 설계
- 27. 설계 데이터베이스 : 테이블
- 28. 데이터베이스 설계 문제?
- 29. 데이터베이스 설계 문제 :
- 30. 단순한 데이터베이스 설계, 예제?
예, 좋은 지적입니다. 나는 그것도 할 것이라고 생각합니다. –