【问题标题】:EF7 sqlite create table if not exists如果不存在,EF7 sqlite 创建表
【发布时间】:2017-01-01 22:55:42
【问题描述】:

将 c# entity framework 7 与 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?
    }
}

【问题讨论】:

  • 如果您不使用迁移,这不是 EF 问题。您必须编写原始 SQL 语句来检查表的存在(这对于 Sqlite 来说并非易事!)并创建它。当然,您可以使用 EF 上下文,但仅作为执行 SQL 的工具。
  • 有没有办法提供一个 sql 字符串给上下文执行?

标签: c# sqlite entity-framework-core


【解决方案1】:

如果您不使用迁移,您可以在应用启动过程中使用它:

context.Database.EnsureCreated();

或与迁移:

context.Database.Migrate();

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 2017-09-10
    • 2016-04-04
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多