본문 바로가기

쓸만한 주저리

Visual Studio 2017 + Entity Framework + MariaDB

반응형

Visual Studio에서 Entity Framework를 사용할 때 MSSQL만 사용했었기에 그 편리함만 가지고 시작한 작업인데...

사흘이 넘게 삽질을 하게 될 줄이야.


증상은 이랬다.

Entity Framework 버전을 선택하는 창이 그냥 사라지는 거다.

위 그림은 창이 사라지는 중에 갈무리했다.

아니면 버전이 맞지 않다고 경고가 나오거나.


검색을 해 보니 종종 이런 증상을 겪는 사람들이 있는데

하라는 대로 해 봐도 도통 해결이 되지 않았다.

사흘을 삽질하고, 집에서 이런저런 궁리를 해 보니 다 지우고

MySQL Connector에 있는 DLL로만 하면 버전이 안 맞는 문제가 해결되지 않을까 하는 생각이 들었다.


아침에 출근하자마자 시도해 봤는데, 실패 실패 또 실패

마지막 시도에서 드디어 성공.


기본적으로 깔려 있어야 하는 것들

MySQL Connector Net 버전이 최신 버전이 아니어서 해결된 것일 수도...

현재 최신 버전은 mysql-connector-net-8.0.11


Entity Framework 버전은 5.0

6.0 지원이라고 쓰여 있는데 뭐가 안 맞는 건지 창이 사라지거나 버전이 맞지 않다고 경고문 뜸


NuGet을 쓰지 않고 수동으로 참조를 추가한다.

기존에 MySQL 관련 참조를 추가했으면 삭제(NuGet으로 추가했으면 NuGet으로 삭제)한다.


풍선도움말에 보이듯이 4.5버전을 지원하는 DLL을 사용했다.

총 3개(모두 같은 경로)가 있는데, EF 5.0을 지원하는 DLL까지만 참조 추가하니까 문제가 여전했다.

EF 6.0을 지원하는 DLL까지 추가하니까, EF 5.0으로 성공.


참조를 추가했으면 [추가] - [새 항목]을 눌러서 모델을 생성한다.



여러 다른 게시물들에서도 볼 수 있는 흔해 빠진 화면이다.


Code First는 왠지 어색하고 거북해서, 난 DB를 먼저 만드는 편이다.

만들면서 기본키, 외래키, 관계까지 다 적용한다.

Code First로 그런 걸 다 하려면 DB로 하는 것보다 귀찮을 것 같아서...



연결에 관한 건 보안 문제로 삭제



첫 그림에서 나왔던 그 창인데 안 사라지고 있다.

경고문이 떠 있지만 다음을 눌러도 창이 사라지지 않는다.

EF 6.0으로 하면 이 창이 안 사라지더라도, 다음을 눌렀을 때 창이 사라진다.


MSSQL에 연결할 때에 비해 속도는 좀 느리지만

정상적으로 모델을 생성한다.

여기서 마침을 누르면 몇몇 테이블이 없다고 경고창이 뜨기도 하는데 최종 결과물에서는 제대로 나와 있었다.


이상 혹시 나랑 비슷한 경험을 하는 사람에게 도움이 되기를 바라며...









반응형