2017-06-17 2 views
1

Ich verwende die JetEntityFrameworkProvider. Ich versuche, eine Verbindung zu einer MS Access-Datei (es hat ext .sep, aber es ist in der Tat eine Access-Datei).Wie definiere ich den Entity Framework Provider im Code?

Ich versuche, die Verbindungszeichenfolge und Anbieter in Code zu definieren, aber es funktioniert nicht. Bevor ich laufe bekomme ich folgende Fehlermeldung:

Ich möchte nicht den Provider in der Konfig konfigurieren. Sicherlich gibt es einen Weg, dies zu tun.

Wenn ich es laufen (ja, es bauen), bekomme ich diesen Fehler:

System.InvalidOperationException: 'The 'Jet OLEDB:Database' provider is not registered on the local machine.'

Kontextklasse

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

Entity Klasse

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

Antwort

1

ich dieses Problem gelöst durch Ändern der Verbindungszeichenfolge zu diesem.

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

} 

Allerdings habe ich ein neues Problem und einen neuen Fehler, also werde ich eine neue Frage stellen.

Verwandte Themen