EntityFramework와 MySQL 접속하기 -2

EntityFramework와 MySQL 접속하기 -2

아래 기사의 실제 실행예와 문제점에 대한 해결방법

Entity Framework로 MySQL 접속

아래의 전제조건에서의 신규 프로젝트 작성 ~ DB 모델의 추가까지

You completely Install mysql-installer-community-5.7.3.0-m13.msi or Install both ofmysql-visualstudio-plugin-1.1.1.msi and mysql-connector-net-6.8.3.msi.

1. Install-Package EntityFramework

0045-1.png

2. Install-Package MySql.Data

0045-2.png

3. Install-Package MySql.Data.Entity

0045-3.png

4. Install-Package MySql.Web

0045-4.png

5. Edit Web.config

0045-5.png

  <entityFramework>
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
    </providers>
  </entityFramework>

6. Clean & Build

7. Make ADO.NET Entity Data Model

0045-6.png

0045-7.png

0045-8.png

0045-9.png

0045-10.png

0045-11.png

0045-12.png

그 외

1. 날짜 변환시에 에러가 발생할 경우

MySQL에서 System.DateTime의 값을 취득할 경우에 아래의 에러가 발생하는 경우가 있다.

Unable to convert MySQL date/time value to System.DateTime

해결 방법

아래의 내용을 connectionStrings에 추가한다.

  <connectionStrings>
    <add name="WPlocalEntities" connectionString="metadata=res://*/WPlocalModel.csdl|res://*/WPlocalModel.ssdl|res://*/WPlocalModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;password=root;Charset=utf8;Convert Zero Datetime=True;persistsecurityinfo=True;database=wp-01&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

2. 선택 가능한 데이터 소스의 일람에 MySQL Database이 표시 되지 않는 경우

Visual Studio 2015のMySQL Database의 추가 방법

0045-13.png

References 에 이하 3개의 패키지를 추가한다(기존에 이미 인스톨 되어 있을 경우엔 언인스톨 한 후-> 재 인스톨)

App.config의 의 내용을 수정한다. 기존의 내용은 코멘트 아웃 시키고 아래 참고 사이트에 있는 내용을 적용시킨다.

0045-14.png

0045-15.png

선택 가능한 Data Source에 MYSQL Database가 표시되는걸 확인할 수 있다.

0045-16.png

3. [Choose Your Data Connection]에서 [Choose Your Database Objects and Settings]로 넘어 가려고 하면 갑자기 화면이 닫히는 현상이 발생할 경우

MySQL Installer의 Connector/ODBC이 영향을 끼치고 있을 가능성이 높으므로 ODBC를 언인스톨 한 다음 재 인스톨 하면 멀쩡해 지는 경우가 있다.

4. 일본어 문자 깨짐 방지

DB의 Character-set를 utf-8로 변경한다.

접속 문자열에 「Charset=utf8;」이 없을 경우 일본어가 깨지기 때문에 아래와 같이 추가한다.

<add name="WPlocalEntities" connectionString="metadata=res://*/WPlocalModel.csdl|res://*/WPlocalModel.ssdl|res://*/WPlocalModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;password=root;Charset=utf8;persistsecurityinfo=True;database=wp-01&quot;" providerName="System.Data.EntityClient" />

Pie's Tech Note

생계형 개발자의 메모장

comments powered by Disqus

    rss facebook twitter github youtube mail spotify instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora