2017-01-01 7 views
0

mit C# Entity Framework 7 mit SQLite, wie kann ich überprüfen, ob eine Tabelle existiert und wenn nicht erstellen? Vielleicht basierend auf einem dbset im Kontext? Es gibt keine existierende Datenbank mit einer Migration oder irgendetwas. Die App erstellt nur die Datenbank, wenn sie nicht da ist und ich möchte auch die Tabellen erstellen.EF7 sqlite Tabelle erstellen, wenn nicht existiert

public class Context : DbContext 
{ 
    public DbSet<Value> Values { get; set; } 


    protected override async void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
    { 
     optionsBuilder.UseSqlite("Filename=data.db"); 

     //here somewhere? 
    } 
} 
+0

Wenn Sie Migrationen nicht, verwenden Sie diese ist keine EF-Frage. Sie müssen Raw-SQL-Anweisungen schreiben, um die Existenz der Tabelle zu überprüfen (was bei Sqlite nicht trivial ist!) Und sie zu erstellen. Sie können natürlich den EF-Kontext verwenden, aber nur als Vehikel, um SQL auszuführen. –

+0

gibt es eine Möglichkeit, ich könnte eine SQL-Zeichenfolge an den Kontext zur Ausführung liefern? – shady

Antwort

1

Wenn Sie nicht Migrationen verwenden, können Sie dies in Ihrer Anwendung Startprozedur verwenden:

context.Database.EnsureCreated(); 

Oder mit Migrations:

context.Database.Migrate(); 
Verwandte Themen