2016-11-30 2 views
1

다른 개발자의 코드를 복구하려고 할 때 계속 문제가 발생했으며, 한 가지 방법은 생성 된 dataset.designer.vb 파일을 수동으로 변경하여 오버로드 된 데이터베이스 CRUD 메서드를 포함하는 것입니다. ... 코드 파일을 검색하고 코드를 파싱 한 후에도 여전히 해당 파일을 생성하는 데 사용되는 소스를 파악할 수 없습니다 ... 실제로 파일을 생성하는 MSDataSetTool을 이해합니다. 수동으로 데이터 집합의 모든 메서드를 리팩토링해야합니다. 차라리 그대로두고 소스 파일의 디자인을 바꾸는 것만 변경하면됩니다.DataSet.designer.vb 파일을 생성하는 내용

디자이너를 생성/재생성하는 방법은 MSDataSetGenerator가 어떻게 보입니까 .vb 파일? This is the info message box i get once it has regenerated the file

답변

2
'------------------------------------------------------------------------------ 
' <auto-generated> 
'  This code was generated by a tool. 
'  Runtime Version:4.0.30319.42000 
' 
'  Changes to this file may cause incorrect behavior and will be lost if 
'  the code is regenerated. 
' </auto-generated> 
'------------------------------------------------------------------------------ 

오른쪽. 너는 그걸 만지고 싶지 않아.

그러나 데이터 모델이 포함 된 xsd 파일이 있어야합니다. 솔루션에 새 DataSet을 추가하면 모든 파일이 자동으로 생성됩니다.

enter image description here

하지만 수동으로도 XSD 파일을 편집 싶지 않을 것이다. 테이블을 관리 할 수있는 그래픽 인터페이스가 있습니다.

enter image description here

그냥 두 번 클릭하여 데이터 세트를 그것을 가져 및 관리 솔루션 탐색기에서 XSD 파일을.

+0

고마워요. 그럼 여기 내 궁핍이 있습니다. 원래의 데이터 세트에서 CRUD 메소드 오버로드가 발생했습니다. GUI에서 테이블을 만들 때 생성 된 새 데이터를 모델링합니다. . 예를 들어 데이터 집합의 .vb에는 INSERT 메서드가 있지만 실제 테이블에는 22 개의 열이있는 반면 12 개의 매개 변수가 필요합니다. 코드에서 실제로 호출 될 때 데이터 집합 "a"의 12 개 매개 변수를 허용합니다. 그러나 데이터 집합 "b"를 만들고 그 같은 정확한 테이블을 만들면 22 개의 매개 변수를 사용하는 삽입 메서드가 생성됩니다 ... 왜 이거 야? –

+0

내가 너라면, 과부하를 식별하여 모든 것을 중간 계층 (파일)으로 옮길 것입니다. 그곳에서 주변을 조종하면 가난한 프로그래밍 패턴을 영속화하는 것입니다. 그러나 일을 올바르게 할 수있는 기회가 주어집니다. 이를 수행하는 한 가지 방법은 부분 클래스를 사용하여 오버로드를 추가하는 방법과 모델을 서브 클래스 화하고 기능을 추가하는 것입니다. – djv

+1

Idk 왜 내가 생각하지 않았는지 (아마 부분 클래스를 만들지 않았기 때문일 것입니다). 따라서 부분 클래스에 대해 다른 파일을 만들고 생성 된 코드를 방해하지 않고 필요한 모든 오버로드를 추가 할 수 있습니까? –