Entity Framework 核心 2 迁移问题

Entity Framework Core 2 Migration issue

我正在使用 ASP.NET Core 2 构建应用程序,DB 部分是 EF core 2。

我有这样的模型

public class User        
{
     public int Id { get; set; }
     public string FirstName { get; set; }
     public string LastName { get; set; }   
}

这是上下文文件

public class EFCoreDbContext:DbContext
{
    public EFCoreDbContext(DbContextOptions<EFCoreDbContext> options)
    : base(options)
    {

    }

    public DbSet<ChatMessage> ChatMessages { get; set; }
}

最后 startup.cs

services.AddDbContext<EFCoreDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("MooltiRoomDatabase")));

和 appsettings.json

中的连接字符串
"ConnectionStrings": {
    "MooltiRoomDatabase": "Server=DESKTOP-BCQ6IAU\CHATDB,Database=MultiRoomChat;Trusted_Connection=True;"
  }

通过包管理器控制台,我 运行ing Add-Migration 命令成功完成,尽管事实上在数据库中它没有创建相应的 table,之后我读到了我需要 运行 Update-Database 命令来创建 table,当我 运行 这个命令时,我得到了这样的错误

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)

在ASP Net Core中还有一个开发配置被使用。您应该会注意到应用程序设置旁边的图标 - "drop down" 图标。查看将连接字符串添加到开发配置是否有帮助。

此外,应用 settings get accessed 的方式也发生了变化,因此请确保您编写的代码正确无误以接收该值。

如您在错误消息中所见,'Connection string is not valid.'您使用了“,”而不是“;”在数据库之前。

现在你有:

"Server=DESKTOP-BCQ6IAU\CHATDB,Database=MultiRoomChat;Trusted_Connection=True;"

但是,你应该使用这个:

"Server=DESKTOP-BCQ6IAU\CHATDB;Database=MultiRoomChat;Trusted_Connection=True;"