初始迁移源文件不包含数据库

时间:2016-11-13 18:19:55

标签: asp.net-web-api web-config entity-framework-6

我正在使用带有Web API的实体框架6。我在包管理器控制台和使用Configuration类创建的Migration文件夹中应用了 Enable-Migrations 命令。 我已经执行了 Add-Migration -InitialCreate 命令初始迁移源文件,但是上下方法都是空的。

因此,当我重新创建数据库时,除了migrationhistory表之外,不会创建任何表。没有表创建到数据库中,因此我的API无法执行任何POST,GET操作并获得以下错误消息。

  

异常类型:System.Data.SqlClient.SqlException   消息:无效的对象名称'dbo.Template'。

请帮助我。

我已经将我的连接字符串放在启动项目中的database.config而不是启动项目的Web.config背后这是因为我不希望在Web.config中更改数据库名称时启动Web API。我已附加了我的Web.config快照。enter image description here

MigrationHistory Table enter image description here

下面是DBContext类的代码。

public class TestDBContext : DbContext
{
    public DbSet<SamlNode> SamlNodes { get; set; }
    public DbSet<Template> Templates { get; set; }

    private static string connectionString
    {
        get
        {
            Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath);
            ConnectionStringsSection connectionString = (ConnectionStringsSection)config.GetSection("database");

            if (connectionString != null && connectionString.ConnectionStrings["TestDBContext"] != null)
            {
                return connectionString.ConnectionStrings["TestDBContext"].ConnectionString;
            }
        }
    }

    public TestDBContext()
        : base(connectionString)
    {
        Database.SetInitializer<TestDBContext>(new CreateDatabaseIfNotExists<TestDBContext>());
        //Database.SetInitializer(new MigrateDatabaseToLatestVersion<TestDBContext, Migrations.Configuration>(connectionString));
    }

    protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
       base.OnModelCreating(modelBuilder);
    }
}

此致 拉什

0 个答案:

没有答案