我正在使用带有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快照。
下面是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);
}
}
此致 拉什