2012-09-11 3 views
0

BLToolkit을 사용하여 MySQL 서버에 연결을 시도하고 있으며 MySql.Data (6.5.4), BLToolkit (4.1.12) 및 BLToolkit.MySql (4.1.12)을 설치했습니다.)를 통해 NuGet. 나는MySQL 연결을 사용하는 BLToolkit

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <BLToolkit> 
     <dataProviders> 
      <add type="BLToolkit.Data.DataProvider.MySqlDataProvider" /> 
     </dataProviders> 
    </BLToolkit> 
    <configSections> 
     <section name="BLToolkit" type="BLToolkit.Configuration.BLToolkitSection, BLToolkit.4" /> 
    </configSections> 
    <connectionStrings> 
     <add name="Test" 
      connectionString="Data Source=localhost;Port=3306;Database=bltest;User ID=root;Password=root;" 
      providerName="MySql.Data.MySqlClient" /> 
    </connectionStrings> 
</configuration> 

가 나는에 대한 참조를 구현하기 위해 DbManager 클래스를 확장 한 ... 한 줄에서 MSSQL 서버에 대한 연결을 만들 수 있지만, MySQL과 문제를 가지고 다음과 같은 구성 파일을 만난다 테이블을 만들고 연결 문자열의 이름을 기본 클래스에 전달했습니다. 이것은 내가 구성 파일에서 ConnectionString을로드 할 BLToolkit을 이야기해야이 문제 ...

class BlDb : DbManager { 
    public BlDb() 
     : base("Test") { 
     return; 
    } 
    public Table<Car> Car { get { return GetTable<Car>(); } } 
    public Table<Make> Make { get { return GetTable<Make>(); } } 
} 

예외 그러나, 슬로우됩니다 구현 방법이다. 예외는 " 'BLToolkit.Data.DbManager'의 형식 이니셜 라이저에서 예외가 발생했습니다." 내부 예외는 "구성 시스템 초기화 실패"입니다. 어떻게해야합니까? SO에 관해서도 비슷한 질문이 있는데, 이는 도움이되는 참조 일 수도 있지만 어떤 의미인지는 알지 못합니다. 두 가지 NuGet 패키지를 모두 설치하지 않습니까?

답변

1

Firts BLToolkit.Data.DataProvider.MySql.4.dll에 대한 참조를 프로젝트에 추가해야합니다. 그런 다음 당신은 하드 코드 된 연결 문자열을 교체하고 ConfigurationManager.ConnectionStrings [ "시험"]처럼 app.config 파일에서 반환 할 수 있습니다

class BlDb : DbManager 
{ 
    public BlDb() 
     : base(new BLToolkit.Data.DataProvider.MySqlDataProvider(), "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword") 
    {   
    } 
    public Table<Car> Car { get { return GetTable<Car>(); } } 
    public Table<Make> Make { get { return GetTable<Make>(); } } 
} 

를 다음과 같습니다. ConnectionString을

로보고 확장 된 DbManager 클래스를 수정
+0

의도 한대로 작동합니다. 다른 사용자가 동일한 문제가있는 경우 구성 파일에서 추가 한 스팸 메일을 제거하고이를 대신 사용해야합니다. 감사 :) –

관련 문제