code first .net core publish 没有数据库表

code first .net core publish has no database tables

我对 Azure 和代码优先都很陌生。我有一个在本地运行的应用程序。我使用 visual studio 向导发布了 Web 项目。一切都很好。 但是它缺少所有数据库 tables.

我查看了具有 "DefaultConnection" 的连接字符串。本地 "Server=(localdb)\..."。 在天蓝色中它显示为 "Data Source=tcp:Sniipedb.database.windows.net,1433"

我有一个数据库初始值设定项,它可以播种数据,但它只能在本地工作。 我认为我的 AppDBContext 应该已经创建了数据库。

在线站点上的实际错误是“SqlException:无效的对象名称'Users'。 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,bool breakConnection,Action wrapCloseInAction)"

但是,当我查看数据库时,没有 tables。

我正在制作一个简单的杂务应用程序。用户是一个 DB table.

要创建用户,我有以下内容: 在 startup.cs

之内
public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<AppDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    services.AddTransient<IUserRepository, UserRepository>();
    services.AddTransient<ITaskRepository, TaskRepository>();
    services.AddMvc();
}

在 AppDBContext 中:DbContext

public DbSet<User> Users {Get; set;}

用户很简单class

public class User
{
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }        
    [Key]
    public string EMailAddress { get; set; }   
    public ICollection<UserTask> UserTasks { get; set; }
}

我有一个 DBInitializer,它为新用户提供种子并保存上下文。

这在本地机器上运行完美。

我的解决方案是配置我的发布。在设置中它有一个 "databases" 选项,其中 "use this connection string at runtime" 未被选中。

同样在 "Entity Framework Migrations" 下 "Apply this migration on publish" 未选中。

通过检查这两个,然后保存并发布它成功了。