【发布时间】:2018-10-29 12:36:46
【问题描述】:
我对 Azure 和代码都很陌生。我有一个可以在本地运行的应用程序。我使用 Visual Studio 向导发布了 Web 项目。一切运作良好。 但是它缺少所有的数据库表。
我查看了具有“DefaultConnection”的连接字符串。本地它的“服务器=(localdb)\ ...”。 在 azure 中,它显示为“Data Source=tcp:Sniipedb.database.windows.net,1433”
我有一个数据库初始化程序,它为数据提供种子,但它只能在本地工作。 我假设我的 AppDBContext 应该已经创建了数据库。
网站上的实际错误是“SqlException: Invalid object name 'Users'. System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,bool breakConnection,Action 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,它可以为新用户播种并保存上下文。
这在本地机器上完美运行。
【问题讨论】:
-
您是否尝试解决了像无效对象名称
users这样的问题?users是表吗?请分享您的代码 -
当然,没问题@Jayendran。它是一张桌子,但当我查看数据库时,我预计有 4 张桌子,但没有看到。
标签: database ef-code-first azure-devops publish