2011-01-24 4 views
9

저장 프로 시저를 변경하면 DBML 파일이 심각하게 불만을 나타내면서 업데이트되지 않습니다.LINQ 및 저장 프로 시저 DBML 업데이트 문제

이것은 어떻게됩니까? 저장 프로 시저를 변경합니다. 그런 다음 .DBML 파일에서 저장 프로 시저를 삭제하고 다시 추가합니다. .DBML 파일에서 올바르게 업데이트되지만 .designer.cs 파일은 업데이트되지 않습니다. 내가 찾은 유일한 해결 방법은 저장 프로 시저를 삭제 한 다음 저장 프로 시저가 반환하는 테이블을 삭제하고 테이블을 추가 한 다음 저장 프로 시저 (.DBML 파일에 모두 포함)를 추가하는 것입니다. 그리고 이것은 때로는 속임수를합니다.

이 문제가 발생한 사람이 있습니까? 확실히 Visual Studio 2008에서 DBML 파일을 업데이트하는 더 적합한 방법이 있습니까?

미리 감사드립니다.

+0

DBML 비주얼 디자이너는 어떤 종류의 업데이트 기능도 없습니다. 이 문제를 해결하기 위해 Huagati의 DBML Tools와 같은 타사 도구를 조사하거나 기본 데이터베이스가 변경되었을 때 데이터베이스에서 기존 모델을 업데이트하는 데있어 더 나은 지원을 제공하는 Entity Framework 4로 전환 할 수 있습니다. –

+0

나는 이것이 오래되었음을 알고 있지만, 나는 (새로운 디자이너 클래스를 추가하는) 그 행동이 예상되었는지를 알기 위해 오늘 우연히 발견했다. 왜 새로 만든 클래스에서 이전 클래스로 잘라내어 붙여 넣기 만하고 새로 만든 클래스를 삭제하지 않는 것이 좋을까요? 그건 당신의 버전 제어로 정렬 된 것들을 유지하고 당신에게 올바른 클래스를 제공합니다. – Ron

답변

13

SP를 변경하면 DBML 파일이 업데이트되는 방식이 없습니다.

나는 당신이 그것을 없앨 것을 제안했습니다. 이것이 우리가 프로젝트에서 따라온 것입니다.

입력 또는 출력 매개 변수 여부에 상관없이 SP에서 업데이트 할 때마다. dbml 파일을 xml 파일로 편집하고 (VS에서만 XML로 열기를 사용할 수 있음) dbml 파일을 저장합니다. 그러면 designer.cs 파일의 변경 사항도 자동으로 업데이트됩니다. 이 방법으로 dbml에서 SP를 삭제하고 다시 추가하여 업데이트를 가져올 필요가 없습니다. 이것은 수동 프로세스이지만 실제로 많은 도움이됩니다.

이렇게하면 기본 이름이 SP 이름과 동일하므로 SP에서 가져 오는 출력에 대해 엔티티 이름을 수정할 수도 있습니다 (엔티티 명명 규칙을 준수하기 위해).

+3

참고 : Visual Studio에서 _designer.cs_ 파일을 다시 생성하려면 ** Visual Studio 내에서 _dbml_ 파일을 XML로 편집해야합니다. 솔루션 탐색기에서 마우스 오른쪽 단추를 클릭하고 _Open With ...를 선택하십시오. 별도의 텍스트 편집기에서 편집/저장해도 _designer.cs_ 파일이 다시 생성되지 않습니다. –

+0

VS 2012에서도 텍스트 편집기로 편집 작업을 성공적으로 마쳤습니다. –

1

1 SQL과 VS는 완전히 별개의 두 가지 서비스입니다. 그냥 연결하면 서로 동기화된다는 의미는 아닙니다.

2 제 의견으로는 DBML이 다소 ms-sql입니다. 나는 DB Factory를 생성하기 위해 인터페이스를 기본으로 사용하고 데이터를 DataTable 또는 DataSet으로 반환합니다. 이 코드는 모든 표준 db에 사용할 수 있습니다.

4

enter image description here 내가 한 일은보기에서 열린 서버 탐색기입니다. 거기에 db 연결이 나열됩니다. 데이터베이스를 가리키고 새로 고침하는 특정 연결을 마우스 오른쪽 버튼으로 클릭하십시오. 새 저장 프로 시저를 추가했거나 업데이트 한 경우 자동으로 업데이트됩니다.

0

또한 Entity Framework 6에서 이것은 문제입니다. .edmx 파일과 "데이터베이스에서 모델 업데이트"의 변경된 요소를 삭제하십시오.