【问题标题】:code first .net core publish has no database tablescode first .net core publish 没有数据库表
【发布时间】: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


【解决方案1】:

我的解决方案是配置我的发布。在设置中,它有一个“数据库”选项,其中未选中“在运行时使用此连接字符串”。

同样在“实体框架迁移”下,未选中“在发布时应用此迁移”。

通过检查这两个,然后保存然后发布它工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多