programing

엔티티 프레임워크 6에 MySQL 연결을 사용할 수 없습니다.

goodjava 2022. 11. 10. 20:46

엔티티 프레임워크 6에 MySQL 연결을 사용할 수 없습니다.

MySQL에서 엔티티 프레임워크6을 사용하려고 합니다.

비주얼 스튜디오 1.1.1과 MySQL용 MySQL 플러그인을 설치했습니다.네트워크 커넥터 6.8.3

문제는 새로운 ADO를 작성하려고 할 때입니다.NET Entity 모델, 연결에 MySQL을 선택할 수 없습니다.

여기에 이미지 설명 입력

하지만 비주얼 스튜디오에 있는 연결 도구에서 연결을 만들면 MySQL을 볼 수 있습니다.

여기에 이미지 설명 입력

즉, 현재 설치된 버전이 엔티티 프레임워크 6과 호환되지 않습니다.최신 커넥터와 플러그인을 설치했는데 어떻게 가능합니까?그 외에 할 일이 있습니까 ?

감사해요.

편집

기본 커넥터를 설치하지 않고 MySQL을 새로 설치하고 6.8.3과 Visual Studio용 플러그인을 설치했습니다.

그러면 엔티티 모델에 대해 설정한 연결을 볼 수 있지만 엔티티 버전을 선택하려고 하면 이 메시지가 나타납니다.

여기에 이미지 설명 입력

최신 편집

버그는 수정되었습니다.

Chris 코멘트:

2015년 11월 7일에 파일을 편집하거나 이상한 작업을 하지 않고도 모든 작업을 수행할 수 있습니다.MySQL for 윈도우즈 설치 관리자를 사용하고 Visual Studio 지원 및 최신 커넥터를 포함합니다.Net. 설치 후 업데이트하면 각각 최신(1.2.5 및 6.9.8)을 얻을 수 있습니다.NuGet을 사용하여 EntityFramework MySql을 설치합니다.데이터 및 MySql.Data. 엔티티마지막으로 Ado를 추가함으로써 코드 우선 리버스 엔지니어링의 장점을 구축하고 즐길 수 있습니다.넷 엔티티 모델

원답

MySQL에서 버그를 발견했습니다.

여기 작업대를 설명하는 링크가 있습니다.

VS 2013이 설치된 시스템에서 VS 플러그인(1.1.3 GA) 및 커넥터/Net

단계를 수행하기 전에 모든 VS 인스턴스를 닫으십시오.

Windows 탐색기 창에서 이 경로 또는 Connector/net 이진 파일을 설치한 위치로 이동합니다.

C:\Program Files (x86)\MySQL\MySQL 커넥터 Net 6.8.3\Assemblys\v4.5\

파일을 복사합니다.

MySql.Data.Entity.EF6.dll

그리고 이 폴더에 붙여넣기

C:\Program Files (x86)\Microsoft Visual Studio 12.0\공통7\IDE\프라이빗 어셈블리

덮어쓰라고 하면 덮어쓰세요.

파일을 덮어쓰려면 관리자 권한이 필요합니다.

그런 다음 모델에 대한 스크립트 생성을 다시 시도할 수 있습니다.

이 회피책은 VS 플러그인의 1.1.3 버전을 설치하는 것이 중요합니다.

안타깝게도 이 기능이 작동하지 않기 때문에 엔티티 프레임워크5로 다운그레이드 했습니다.

편집

마지막으로, 이제 작동한다.

다음 3개의 DLL을 추가해야 했습니다.

  • C:\Program Files (x86)\MySQL\MySQL 커넥터 Net 6.8.3\어셈블리\v4.5\MySql.Data.dll
  • C:\Program Files (x86)\MySQL\MySQL 커넥터 Net 6.8.3\어셈블리\v4.5\MySql.Data.Entity.EF6.dll
  • C:\Program Files (x86)\MySQL\MySQL 커넥터 Net 6.8.3\어셈블리\v4.5\MySql.Web.dll

그런 다음 웹 설정의 Entity Framework 부분을 다음과 같이 변경했습니다.

<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> 
    </providers>
  </entityFramework>

잊지 말고 REBUILD를 사용해 엔티티 프레임워크6 모델을 작성할 수 있습니다.

중요한

MySQL for visual studio 1.1.3과 MySQL connector .net 6.8.3이 설치되어 있는지 확인합니다.

2017년 솔루션

Nuget 패키지 설치:

Install-Package EntityFramework
Install-Package MySql.Data.Entity -Version 6.9.9

MySQL for Visual Studio 1.2.6 설치 - https://dev.mysql.com/downloads/windows/visualstudio/

웹의 변경.설정

<EntityFramework>

대상:

<EntityFramework codeConfigurationType = "MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">

추가(** 정보 **):

<connectionStrings>
<add name="**YourContextName**" connectionString="server=**xxx.xxx.xxx.xxx**;port=3306;user id=**your user**;password=**your password**;database=**your database**" providerName="MySql.Data.MySqlClient" /></connectionStrings>

**Restart Visual Studio**

설정: ★★★★★★★★★★★★★★★★★★」
2015 - Microsoft Visual Studio 2015
- Dot Net Framework 4.5.2
5 - ASP넷 MVC 5.2.3.0
5. - MySql Server 5.6

이게 아직 문제가 될지 모르겠지만, 위의 해결책들 중 어느 것도 제게는 효과가 없었습니다.내가 이걸 발견하기 전까지는:

http://www.microsoft.com/en-us/download/details.aspx?id=40762

VS2013과 VS2012 모두에 패치를 적용한 후 VS2013이 MySql용 EF6와 원활하게 작동하게 되었습니다.

ps NuGet (NuGet) :
엔티티 프레임워크 - 6.1.3 (2015년 3월 10일)
(24일)MySqlData - 6.9.6 (2015년 2월 24일)
MySql.Data.- (24일) - 6.9.6 (2015년 2월 24일)
- 6 ( 24일) MySql.Web - 6.9.6 (2015년 2월 24일)

NuGet은 작업을 올바르게 수행하고 웹을 업데이트합니다.필요에 따라서, 「entity Framework」섹션에 필요한 정보를 입력합니다.

VS2013의 경우 단순히 "전혀 작동하지 않음"에서 "완전 기능"으로 바뀝니다.VS2012에서는 패치를 적용하기 전에는 사용할 수 없었던 "데이터베이스에서 코드 우선"을 사용할 수 있습니다.

이걸 10일 전에 찾았으면 좋았을 텐데, 그래도 도움이 됐으면 좋겠어요.

MySQL을 재설치하고 Visual studio에 설치된 커넥터 버전을 참조로 사용하는 것은 성공했습니다!

순서:

  1. 안정적인 최신 MySQL 커넥터를 사용하여 MySQL Tools를 다시 설치합니다.
  2. Visual Studio에서 참조용으로 다음 3개의 파일을 추가합니다.

  3. MySql.Data.dll

  4. MySql.Data.Entity.EF6.dll
  5. MySql.Web.dll

  6. 다음 Web.config를 변경합니다.

      <providers>
        <provider invariantName="System.Data.SqlClient"  type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
     </providers>
    

수신인:

 <providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>

연결 사용자 이름/비밀번호/db 이름이 올바른지 확인하십시오. 그렇지 않으면 Visual Studio가 충돌할 수 있습니다. (저와 함께 발생했습니다.)

저도 같은 문제에 직면해 있었습니다.


1. MySQL for Visual Studio를 설치합니다.
https://dev.mysql.com/downloads/windows/visualstudio/httpsdev.mysql.com/downloads/windows//
MySql2를 합니다. MySql 。 ★★★★★★★★★★★★★★★★★★★★★★★★★★★
MySql3을 합니다. MySql 。의 Data입니다.엔티티 프레임워크

내 sql - http://dev.mysql.com/downloads/connector/net/ 또는 http://dev.mysql.com/downloads/connector/net/에 최신 닷넷 커넥터를 설치하려고 했습니까?

2015-11-07 업데이트

이 버그는 수정되어 NuGet 외부에서 파일을 편집하거나 어셈블리를 참조하지 않고도 모든 작업을 수행할 수 있게 되었습니다.올바른 것을 설치하고 적절한 NuGet 패키지를 추가하기만 하면 됩니다.방법은 다음과 같습니다.

MySQL for 윈도우즈 설치 관리자를 사용하고 Visual Studio 지원 및 최신 커넥터를 포함합니다.Net. 설치 후 업데이트하면 각각 최신(1.2.5 및 6.9.8)을 얻을 수 있습니다.

그런 다음 NuGet을 사용하여 EntityFramework MySql을 설치합니다.데이터 및 MySql.Data. 엔티티

마지막으로 Ado를 추가하여 코드 우선 리버스 엔지니어링의 장점을 구축하고 즐기십시오.넷 엔티티 모델

나는 이것을 mySQL Bucktracker에서 찾았다.

다음의 회피책을 시험해 보겠습니다.

MySQL DB에서 다음 명령을 실행한 후 작동 여부를 시도하십시오.

set global optimizer_switch='derived_switch=off'

다음 어셈블리도 추가했습니다.

  • Nuget 패키지로서의 EF6
  • MySQL.Data
  • MySql.Data.Entity.EF6.dll
  • MySQL.Web(꼭 필요한지는 잘 모르겠습니다)

MySql EF6 공급자를 찾거나 로드하는 문제로 GUI 프로젝트를 실행할 수 없는 경우 다중 프로젝트 솔루션을 사용하는 모든 사용자를 위한 참고 사항:

ADO에 대한 엔티티 프레임워크 제공자를 찾을 수 없습니다.이름이 'MySql'인 NET 제공자입니다.Data.(...)" 응용 프로그램 구성 파일의 'entityFramework' 섹션에 공급자가 등록되어 있는지 확인하십시오.자세한 내용은 http://go.microsoft.com/fwlink/?LinkId=260882 를 참조해 주세요.

질문을 보세요.

SqlServer에 관한 문제이지만 DB 조작을 처리하는 프로젝트가 1개뿐이라면 Nuget References를 에 추가했을 가능성이 높습니다.MySql.Data그리고.MySql.Data.Entity그리고.EntityFramework할 수 있을 것 같아요.부터MySql.Data그리고.EntityFramework코드에 의해 직접 사용되며 빌드 프로세스는 그것들을 출력 폴더에 복사하고 GUI 프로젝트의 출력 폴더에도 두 번째로 복사할 수 있을 정도로 스마트합니다.

하지만, 그 이후로는MySql.Data.Entity에 의해서만 참조됩니다.app.config또는web.config 텍스트 파일, 빌드 프로세스에서는 이 참조가 불필요하다고 생각하고(코드는 사용하지 않습니다!) 삭제하면 표시되지 않습니다.MySql.Data.Entity.EF6.dllGUI 프로젝트 출력 dir에 의해 GUI 프로젝트가 해당 공급자를 찾을 수 없게 됩니다.

따라서 두 가지 옵션 - 빌드 프로세스의 일부로 DLL을 복사하거나(예: 빌드 전/후 이벤트, 배포 패키지 작성기, CI 작업, 휴먼 작업 등) DB/EF6 프로젝트의 어셈블리를 직접 참조할 수 있습니다.

파티에 늦은 거 알아.근데 Visual Studio 2019에서도 같은 문제가 있었어요.MySql Connector와 MySql for Visual Studio를 설치하려고 했지만 작동하지 않았습니다.

나에게 효과가 있었던 것은

  1. MySql for Visual Studio 버전 2.0.5의 개발 버전을 설치했습니다. (제가 언급한 링크를 사용하고 있다면 개발 릴리스를 클릭하는 것을 잊지 마십시오.)
  2. 다음 nuget 패키지를 설치했습니다.MySql.Data.EntityFramework일반적으로 다음과 같은 많은 다른 패키지를 설치합니다.MySql.Data,mysql.sata.entity.EF6기타.
  3. 커넥터/NET 8.0.26을 설치했습니다.

윈도우 폼 어플리케이션과 함께 Visual Studio 2019와 EF6를 사용하고 있습니다.커넥터/NET 8.0.26

언급URL : https://stackoverflow.com/questions/21206184/cant-use-a-mysql-connection-for-entity-framework-6