我对Azure和代码都是新手。我有一个在本地工作的应用程序。我使用Visual Studio向导发布了Web项目。一切都很好。 但是它缺少所有的数据库表。
我看了一个带有“ DefaultConnection”的连接字符串。在本地其“ Server =(localdb)\ ...”。 在蔚蓝中,它显示为“ Data Source = tcp:Sniipedb.database.windows.net,1433”
我有一个db初始化程序,可以为数据添加种子,但是它只能在本地工作。 我认为我的AppDBContext应该已经创建了数据库。
在线站点上的实际错误是“ SqlException:无效的对象名称'Users'。 System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔值breakConnection,操作wrapCloseInAction)“
但是,当我查看数据库时,没有表。
我正在制作一个简单的杂务应用程序。用户是一个数据库表。
要创建用户,我具有以下内容: 在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;}
用户是一个简单的类
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,它为新用户提供种子并保存上下文。
这在本地计算机上可以正常工作。
答案 0 :(得分:0)
对我来说,解决方案是配置发布。在设置中,它具有“数据库”选项,其中未选中“在运行时使用此连接字符串”。
还在“实体框架迁移”下未选中“在发布时应用此迁移”。
通过检查这两个,然后保存然后发布即可。