일부 백엔드 코드에 대해 TableAdapter 클래스를 자동 생성하기 위해 .xsd 데이터 세트를 사용하고 있습니다. 필자는 전에 수동 명령을 선호하고 가능할 때마다 procs를 저장하는 경향이있었습니다 (다양한 속도로 인해 xsd가 동적 테이블과 많은 양의 열을 가지고 지옥을 움직입니다). 그리고 TableAdapter를 실제로 인스턴스화했습니다. 많은 나의 방법, 그래서 내 질문은자동 생성 된 TableAdapter를 사용할 때 반복되는 인스턴스화를 처리하기위한 제안 된 방법은 무엇입니까?
자동 생성 된 코드가 자동으로 자동화되어 전체 어댑터 클래스가 instatiation에 만들어지지 않고 대신에 일부 정적 데이터 (예 : 연결 정보), 그렇지 않다면 나에게 몇 가지 정보를 얻고 싶을 때마다 새 어댑터를 만드는 데 필요한 오버 헤드없이 필요할 때 자신의 메서드에 액세스 할 수있는 일종의 싱글 톤/정적 클래스 공급자를 사용하는 것이 더 좋을까요?
는 건배, 에드
TA의 인스턴스화에 실제로 많은 오버 헤드가 있습니까? 내가 생성자에서 볼 수있는 유일한 것은'this.ClearBeforeFill = true; '입니다. 그리고 CommandCollection과 Connection 속성은 TA의 수명 기간 동안 한 번만 설정됩니다 ..... 설정시 발생하는 오버 헤드는 첫 번째 호출은 공용 메서드 ..... Fill 메서드 중 하나입니다. 따라서 범위에 머물러 있다면 성능에 대한 문제는 기대할 수 없습니다. 나는 기초로부터 떨어져서 여기에있다? – Ken
그건 솔직히 말해서 대답에 가깝다. 내가 명령을 실행할 때마다 새로운 것을 만들 때 성능이 떨어지는 지 알아보기 위해 찾고있다. 문자 그대로는 있지만 아주 가깝습니다. 시스템 복잡성으로 인해 이러한 코드를 사용하는 코드가 있습니다.) 또는 캐시 된 제공자 모델을 만들어 필 요에 따라 제공해야하는 경우. –
어쩌면 DotTrace를 사용하여 내 주장을 확인할 수 있습니다. (BTW ... 나는 VS2005를 사용하고있다.) 디자인 타임에 입력 된 연결 문자열이 있기 때문에 일반적으로하는 한 가지는 수락 및 설정하는 테이블 어댑터의 부분 클래스에서 오버로드 생성자를 만드는 것이다 생산 연결 문자열, 디자인 타임 문자열이 아닙니다. 그러나 이것은 인스턴스화시 연결을 설정하기 때문에 약간의 비용이 들게됩니다. – Ken