2017-01-01 101 views
0

使用c#實體框架7與sqlite,我該如何檢查一下表是否存在,如果不創建它?也許基於上下文中的dbset?沒有現有的數據庫與遷移或任何東西。應用程序創建數據庫時,它不在那裏,我也想創建表。EF7 sqlite創建表如果不存在

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

如果不使用遷移,這不是EF問題。你必須編寫原始的SQL語句來檢查表的存在(這對Sqlite來說並不重要)並創建它。當然,你可以使用EF上下文,但僅僅作爲執行SQL的工具。 –

+0

有沒有一種方法可以提供一個sql字符串來執行上下文? – shady

回答

1

如果你不使用遷移,您可以將您的應用程序的啓動過程中使用這樣的:

context.Database.EnsureCreated(); 

或者與遷移:

context.Database.Migrate();