2

我正在使用JetEntityFrameworkProvider. 我正在尝试连接到一个 MS Access 文件(它有 ext .sep,但它确实是一个 Access 文件)。

我正在尝试在代码中定义连接字符串和提供程序,但它不起作用。在我运行之前,我收到以下错误:

无法确定“JetEntityFrameworkProvider.JetProviderFactory”类型的提供者工厂的提供者名称。确保在应用程序配置中安装或注册了 ADO.NET 提供程序。

我不想在配置中配置提供程序。当然有办法做到这一点。

当我运行它时(是的,它会构建),我得到这个错误:

System.InvalidOperationException:“'Jet OLEDB:Database' 提供程序未在本地计算机上注册。”

上下文类

public class ProjectContext : DbContext
{
    private DbConnection con = new JetConnection();

    public ProjectContext() : base(new JetConnection(""Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\\Test-Project.sep'; Provider=Jet OLEDB:Database; Password=SEEME;""), true)
    {
    }

    public DbSet<Component> Components { get; set; }
}

实体类

public class Component
{
    [Key]
    [Column("Counter")]
    public int Id { get; set; }
    [Column("Name")]
    public string Name { get; set; }
}
4

1 回答 1

1

我通过将连接字符串更改为此解决了这个问题。

public ProjectContext() : base(new JetConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\Test-Project.sep'; providerName=JetEntityFrameworkProvider; Password=SEEME;"), true)
{

}

但是,我有一个新问题和一个新错误,所以我将发布一个新问题。

于 2017-06-18T01:23:38.070 回答