当前位置:  开发笔记 > 编程语言 > 正文

ConnectionString属性尚未在update-database上初始化

如何解决《ConnectionString属性尚未在update-database上初始化》经验,为你挑选了1个好方法。

在包管理器控制台中,我在azure上对我的数据库运行命令更新数据库,但是我收到错误,说ConnectionString属性尚未初始化.

我对本地数据库做了同样的事情,一切都很好.在我的web配置中,我已经将连接字符串更改为mach我的azure数据库,这是我的数据库上下文的样子:

 public class MadLabsDatabaseContext : IdentityDbContext
{
    public MadLabsDatabaseContext()
        : base("DefaultConnection")
    {
        Configuration.LazyLoadingEnabled = true;
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity()
           .ToTable("AspNetUsers");
        modelBuilder.Entity()
            .ToTable("AspNetUsers");
    }
}

这是web.config中的连接字符串:




这是我的Package Manager控制台代码:

Update-database -ConnectionString "Data Source=tcp:serverName.database.windows.net,1433;Database=madLabs_db;User ID=userName;Password=password;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;MultipleActiveResultSets=True;" -ConnectionProviderName "System.Data.SqlClient"

为什么我收到此错误?



1> Alex..:

我想我已在这里回答了这个问题.

我猜你有ASP Identity 2.0.0,由于某种原因,这会导致Azure上的问题而不是本地问题,但修复很容易.

尝试将代码更改为:

public class MadLabsDatabaseContext : IdentityDbContext
{
    // This is the offending line
    // Add throwIfV1Schema: false
    public MadLabsDatabaseContext() : base("DefaultConnection", throwIfV1Schema: false)
    {
        Configuration.LazyLoadingEnabled = true;
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity()
           .ToTable("AspNetUsers");
        modelBuilder.Entity()
           .ToTable("AspNetUsers");
    }
}

现在尝试发布到Azure,它应该工作.


哇.你刚刚给我节省了几个小时的深夜诅咒和哭泣.我不会想到在一百万年里尝试这一点.谢谢.
推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有