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" 未选中。
通过检查这两个,然后保存并发布它成功了。
我对 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" 未选中。
通过检查这两个,然后保存并发布它成功了。