2017-01-01 58 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();