繁体   English   中英

实体框架核心2迁移问题

[英]Entity Framework Core 2 Migration issue

我正在使用ASP.NET Core 2构建应用程序,而DB部分是EF核心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;"
  }

通过包管理器控制台我运行Add-Migration命令已成功完成,尽管在DB中它没有创建相应的表,之后我读到我需要运行Update-Database命令来创建表,当我运行这个命令,我得到这样的错误

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:25 - 连接字符串无效)

正如您在错误消息中看到的,“连接字符串无效”。 你使用“,”而不是“;” 在数据库之前。

所以现在你有:

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

但是,你应该使用这个:

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

在ASP Net Core中,还有一个可以使用的开发配置。 您应该会在应用设置旁边看到一个图标 - “下拉”图标。 查看是否将连接字符串添加到开发配置有帮助。

访问应用程序设置的方式也发生了变化,因此请确保编写正确的代码以接收值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM