2011-05-05 5 views
2

원격 SQL Server 2005 DB를 가리키는 엔티티 프레임 워크 (3.5) 데이터 모델이 있습니다. DB의 테이블에 몇 개의 필드를 추가하고 모델을 업데이트하려고했습니다. 새로 고침이 작동하지 않고 테이블을 제거하고 다시 추가해야한다는 것을 이해합니다.하지만 테이블을 제거하면 "데이터베이스에서 모델 업데이트"로 이동했습니다. 테이블이 목록에 없습니다!EF 모델 업데이트 : 테이블이 누락되었습니다.

DB에 NEW 테이블을 추가하면 목록에 표시되지만 제거하고 다시 추가하려고하면 거기에 없습니다! 다른 프로젝트에서이 작업을 많이했는데 왜이 프로젝트에서 작동하지 않는지 알 수 없습니다.

아이디어가 있으십니까?

답변

7

모델에 대한 모델 탐색기를 열면 모델과 상점의 두 섹션이 있습니다. 우리가 사용하던 문제는 객체가 모델에서 삭제되지만 정의가 여전히 상점에 남아 있다는 것입니다. 그 시점에서 우리는 EF를 업데이트 할 때마다 저장소의 정의를 업데이트하지만 모델의 부분을 재생성하지 않으므로 전혀 가져 오지 않았던 것처럼 보입니다 (기본적으로 사용자가 ' 다시 붙어서). Visual Studio를 통해 두 곳에서 모두 삭제되었는지 확인한 후 다시 업데이트하십시오. 그러면 EF가 새 항목으로 처리하고 두 섹션에 대해 개체를 생성해야합니다.

두 번째 (더 고통스러운) 솔루션은 모델의 XML 파일을 열고 엔터티 이름을 검색 한 다음 일치하는 개체를 제거하는 것입니다. 이것은 조금 까다 롭고 유감스럽게도 나에게 너무 길기 때문에 정확하게 발을 쏠 수없는 방법에 대한 지침을 정확하게 줄 수 있습니다.

+0

감사합니다. 필자는 저장소 XML을 수동으로 편집하고 증상을 해결했습니다. 그러나 문제는 여전히 존재합니다 (즉 테이블은 모델에서 삭제되었지만 저장되지는 ​​않습니다). 다행히 처음부터 전체 모델을 다시 생성 할 필요가 없기 때문에 저장 프로 시저 기능이 많이 있습니다. ( – SteveCav

+0

DB에 필드를 추가하고 필드를 삭제하면 테이블에 필드를 추가하면 잘 작동합니다 그때 당신은 인터페이스에서 제거해야합니다. 우리는 당신과 비슷한 문제가 있었지만 우리가 뭘했는지 기억하지 못합니다. 우리는 DB에서 테이블의 이름을 임시로 바꿀 수 있고, 모델을 업데이트 할 수 있음을 발견했습니다 (테이블은 '삭제되었습니다'), 테이블 이름을 다시 지정하고 다시 추가하면 조각이 남아있는 문제를 해결할 수 있습니다. – Tarwn

+1

감사합니다. 귀하의 게시물은 좌절감을 안겨줍니다. 여전히 Visual Studio에서 문제가있는 것으로 보입니다. 2013 – David

0

디자이너에서 테이블을 제거하고 테이블을 다시 추가해야합니다.

+0

고마워,하지만 내 질문에 나는 그것을 시도했다. – SteveCav