如何在代码中定义实体框架提供程序?

时间:2017-06-17 21:49:19

标签: entity-framework ms-access jet-ef-provider

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

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

  

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

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

当我运行它(是的它会构建)时,我收到此错误:

  

System.InvalidOperationException:''Jet OLEDB:数据库'提供程序未在本地计算机上注册。'

上下文类

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; }
}

1 个答案:

答案 0 :(得分:1)

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

{{1}}

但是,我遇到了新问题和新错误,所以我会发布一个新问题。