3

MySQL의 + 비주얼 스튜디오 "등록 된 닷넷 프레임 워크 데이터 공급자를 찾거나로드 할 수 없습니다"2012MySQL의 + 비주얼 스튜디오 2012

"Failed to find or load the registered .Net Framework Data Provider" 

안녕하세요 내가 경험하고이 오류에 대한 도움을 요청하고자하는 모든 사람. Visual Studio 2012를 entity framework 5으로 사용하고 mysql을이 링크 http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html을 통해 다운로드했습니다. 프로젝트에서 ADO.NET 엔터티 데이터 모델을 '데이터베이스에서 생성'포트 3307 (다른 3306 사용되는) MySql있는 추가했습니다. 나는 그 연결을 테스트했고 그것은 'Test Connection Succeded'라고 말했습니다. 그래서 데이터베이스에 삽입 쿼리로 코딩을 시작했습니다. 내가 시험을 보러 갔을 때, 그것은 말쑥하고 말했습니다.

"Failed to find or load the registered .Net Framework Data Provider". 

당신의 도움은 대단히 감사합니다. 미리 감사드립니다.

+0

몇 가지 코드를 게시 할 수 있습니까? –

답변

1

가장 쉬운 대답은 단순히 NuGet을 통해 MySQL.Data 및 MySQL.Data.Entities 패키지를 설치하는 것입니다. Windows 용 MySQL 설치 프로그램을 사용하면 필요한 DLL 및 프로젝트 참조가 추가되지 않지만 NuGet이 자동으로 수행합니다. 의 app.config없이 코드를 통해 http://www.nuget.org/packages?q=mysql

+0

이미 Nuget을 통해 두 가지 방법이 있습니다. –

+0

@Wao는 도메인 모델/데이터 액세스 레이어와 같은 앱에 설치되어있는 패키지이며 앱을 실행할 수있는 레이어가 아닙니다 (웹 프로젝트와 같은)? 실제로 프로젝트를 수행 할 때도 필요합니다. – wilso132

+0

저는 사실 이것에 대한 초보자입니다. 나도 몰라. 참조 (마우스 오른쪽 버튼 클릭) -> Manage Nuget Packages -> 두 dll 찾기 -> 두 가지 모두를 통해 설치했습니다. 그게 전부 야. 방금 만들었 어. –

0

또 다른 방법 : 여기

는 상위 2 패키지를 사용 ... 링크의

(이 코드의 오른쪽 MySql.Data 버전을 설정하는 것을 잊지 마세요)
public class MySqlDbConfiguration: DbConfiguration 
{ 
    public MySqlDbConfiguration() 
    { 
     SetDefaultConnectionFactory(new MySqlConnectionFactory()); 
     SetProviderServices(MySqlProviderInvariantName.ProviderName, new MySqlProviderServices()); 
     RegisterFactoryIfRequired(); 
    } 

    private static void RegisterFactoryIfRequired() 
    { 
     string dataProvider = @"MySql.Data.MySqlClient"; 
     string dataProviderDescription = @".Net Framework Data Provider for MySQL"; 
     string dataProviderName = @"MySQL Data Provider"; 
     string dataProviderType = 
      @"MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"; 

     bool addProvider = true; 
     var dataSet = ConfigurationManager.GetSection("system.data") as DataSet; 
     foreach (DataRow row in dataSet.Tables[0].Rows) 
     { 
      if ((row["InvariantName"] as string) == dataProvider) 
      { 
       // it is already in the config, no need to add. 
       addProvider = false; 
       break; 
      } 
     } 

     if (addProvider) 
      dataSet.Tables[0].Rows.Add(dataProviderName, dataProviderDescription, dataProvider, dataProviderType); 

     // test it 
     var factory = DbProviderFactories.GetFactory("MySql.Data.MySqlClient"); 
    } 

} 
관련 문제