2013-08-25 6 views
5

.accdb 파일을 사용합니다. "null를 돌려"System.Data.OleDb.OleDbConnection "저장소 대해서 typeof에서"get_ProviderFactory을 "호출"나는이 ProviderIncompatibleException를 얻을 수 dB로 첫 번째 쿼리 후 클래스Microsoft Access를 사용하는 Entity Framework

using System.Data.Entity; 

    class MSADbContext:DbContext 
    { 
     public DbSet<Product> Products { get; set; } 
    } 

및 추가 ConnectionString을

<add name="MSADbContext" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\SportsStore.accdb" providerName="System.Data.OleDb"/> 

을 생성

답변

6

연결 문자열은 .mdb (Access 2003-) 파일에 대한 문자열입니다. 연결 확인 strings here

ACE OLEDB 공급자가 필요합니다. 표준 보안 :

엔티티 프레임 워크는 OLEDB 연결을 지원하지 않습니다, 그래서 당신의 연결 문자열이 작동하지 않습니다

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb; 
Persist Security Info=False; 

그러나, 첫째 this thread를 참조하십시오. Entity Framework에서 MS Access와 공동 작업하는 것은 사실상 불가능합니다.

은 매우 매력적입니다.

5

OLEDB는 엔터티 프레임 워크 공급자가 특정 데이터베이스에 대한 올바른 쿼리를 생성해야하므로 (OLEDB는 일반 DB 액세스 인 반면) 엔터티 프레임 워크를 지원할 수 없습니다. Microsoft Access에 대한 특정 공급자가 필요합니다.

할 수 있습니다 여기에 Microsoft Access에서 엔티티 프레임 워크 공급자를 찾을 수 https://jetentityframeworkprovider.codeplex.com/

편집 액세스 EF 공급자가 이제 [코드 플렉스가 종료 될 것이라는 발표 감안할 때 GitHub의
https://github.com/bubibubi/JetEntityFrameworkProvider

+0

에서 호스팅되는
] (https://blogs.msdn.microsoft.com/bharry/2017/03/31/shutting-down-codeplex/) 프로젝트를 GitHub로 옮길 것입니까? –

+2

나는 그것을 보지 못했다. 나는 그것을 github로 옮길 것이다. 감사! – bubi

관련 문제