使用Microsoft Access的实体框架

Sta*_*lli 8 ms-access entity-framework connection-string

我使用.accdb文件.我创造了课程

using System.Data.Entity;

    class MSADbContext:DbContext
    {
        public DbSet<Product> Products { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

并添加connectionString

<add name="MSADbContext" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\SportsStore.accdb" providerName="System.Data.OleDb"/>
Run Code Online (Sandbox Code Playgroud)

在第一次查询到DB之后,我得到ProviderIncompatibleException:"在存储库typeOf中调用"get_ProviderFactory"System.Data.OleDb.OleDbConnection"返回null"

And*_*y G 8

您的连接字符串将用于.mdb(Access 2003-)文件.检查连接字符串

您需要ACE OLEDB提供程序.标准安全:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;
Persist Security Info=False;
Run Code Online (Sandbox Code Playgroud)

但是,首先阅读此主题:

实体框架不支持OLEDB连接,因此您的连接字符串将不起作用.实际上不可能让Entity Framework与MS Access协作.

几乎不可能是非常引人注目的.


bub*_*ubi 6

OLEDB不支持实体框架,因为实体框架需要实体框架提供者为特定数据库生成正确的查询(而OLEDB是通用DB访问).您需要Microsoft Access的特定提供程序.

您可以在此处找到Microsoft Access实体框架提供商 https://jetentityframeworkprovider.codeplex.com/

编辑
Access EF提供程序现在托管在GitHub上
https://github.com/bubibubi/JetEntityFrameworkProvider

  • 我没有看到它.我会把它移到github.谢谢! (2认同)