实体框架核心2迁移问题

时间:2018-05-26 19:19:43

标签: c# entity-framework-core asp.net-core-2.0 entity-framework-core-migrations

我正在使用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 - 连接字符串无效)

2 个答案:

答案 0 :(得分:3)

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

所以现在你有:

1 Childish Gambino This Is America 1 1 2
2 Drake Nice For What 2 1 6
3 Drake God's Plan 3 1 17
4 Post Malone Featuring Ty Dolla $ign Psycho 4 2 12
5 BlocBoy JB Featuring Drake Look Alive 5 3 14
6 Ella Mai Boo'd Up 10 6 8

但是,你应该使用它:

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

答案 1 :(得分:0)

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

此外,应用settings get accessed已更改的方式,因此请确保您正在编写正确的代码以接收该值。