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"
您的连接字符串将用于.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协作.
几乎不可能是非常引人注目的.
OLEDB不支持实体框架,因为实体框架需要实体框架提供者为特定数据库生成正确的查询(而OLEDB是通用DB访问).您需要Microsoft Access的特定提供程序.
您可以在此处找到Microsoft Access实体框架提供商 https://jetentityframeworkprovider.codeplex.com/
编辑
Access EF提供程序现在托管在GitHub上
https://github.com/bubibubi/JetEntityFrameworkProvider