(요약)
.edmx 파일에서 '데이터베이스에서 모델 업데이트' 버튼 클릭 - 연결 선택 후 진행 시 메세지 없이 꺼지는 경우
-> MySQL Connector .NET / MySQL.Data / MySQL.Data.Entity 세가지의 버전이 맞지 않는 것! (나의 경우엔 그랬다)
-> 아래 글의 3,4번 참고하여 재설치!
Entity Framework(EF) 기반 ASP.NET MVC 프로젝트를 진행할 때
위에 요약 내용과 같이, MySQL 커넥터 설치파일과 MySQL.Data Nuget 패키지의 버전이 맞지 않는 경우
DB모델을 업데이트 하려고 하는 경우 왜 꺼지는지 이유도 모르고 그냥 꺼져버린다..
왜때문에.. 꺼지는지 알 수가 없으니 삽질을 정말 화나도록 오래했었다..
처음에는 이 버전들 때문인지도 모르고 별 설정을 다 만져본 것 같다ㅠ
네이버나 한글 구글링으로는 나올리도 없고
영어로 찾아도 정보가 별로 없는데 나와는 상관없는 해결책들이 대부분ㅠㅠ
결국 찾아내긴했는데 정말 꼭꼭 숨어있다
문제는 버전끼리 안맞아서!!
1. 비주얼 스튜디오를 끈다
2. MySQL Connector와 MySQL for Visual Studio 설치파일 삭제
3. 알맞는 버전으로 재설치(재부팅 필요)
(1) Visual Studio 2019 + MySQL for Visual Studio 1.2.9 + MySQL Connector Net 8.0.14
(2) Visual Studio 2017 + MySQL for Visual Studio 1.2.7 + MySQL Connector Net 6.9.9
(3) Visual Studio 2015 + MySQL for Visual Studio 1.2.7(or 2.0.2) + MySQL Connector Net 6.9.8
-> 나의 경우 (1)에 해당, 버전 고친 후 바로 해결되었다.
4. Visual Studio 실행 후, NuGet 패키지 관리 화면 실행(도구 - NuGet 패키지 관리자 - 솔루션용 NuGet 패키지 관리)
3번에서 설치했던 MySQL Connector Net 버전과 동일한 버전으로 MySql.Data 와 MySql.Data.Entity 패키지를 설치한다.
+참고) (중요) MySql.Data.Entity 는 현재 deprecated된 상태. NuGet설치화면에서 검색해도 안나온다.
8.x 버전부터는 MySql.Data.EntityFramework 라는 이름으로 바뀌었으니 해당 패키지를 설치하면 되시겠다.
6.x 버전이 필요한 경우, NuGet Gallery에서 버전으로 검색해서 직접 로컬에 다운받고, NuGet 설치 화면에서 직접 추가하여 설치하면 된다.
(설치법: https://stackoverflow.com/questions/10240029/how-do-i-install-a-nuget-package-nupkg-file-locally)
(패키지 다운로드 링크: https://www.nuget.org/stats/packages/MySql.Data.Entity?groupby=Version)
+) 원래는 자동으로 적용되지만, 바뀐 MySql 버전이 프로젝트에 적용되지않는 경우가 있다.
프로젝트 트리 최하단에 Web.config 파일에서 Mysql.Data 검색 후 버전 직접 수정해주면 OK
탈모의 위기에서 구해준 이름모를 푸른눈의 외국인에게 감사하며,,
내 글도 누군가에게 도움이 되길 바라며 귀찮지만 글을 작성해본다.
내 수십시간에 걸친 구글링이 이렇게 글 몇줄에 요약되니 허무하기도하고 너무 쉽게 알려주나 싶기도하다.
(나만당할수없지 심보)
혹시라도 도움 받았다면 댓글 하나 남겨주세요.. 한명에게라도 도움이 되었다면 뿌듯할 것 같다ㅎㅎ
그럼 이만..
버전문제는 정말 지긋지긋해...