【问题标题】:Entity Framework Core 2 Migration issueEntity Framework Core 2 迁移问题
【发布时间】:2018-11-05 20:41:37
【问题描述】:

我正在使用 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;"
  }

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

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

【问题讨论】:

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


    【解决方案1】:

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

    所以现在你有:

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

    但是,你应该使用这个:

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

    【讨论】:

      【解决方案2】:

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

      应用程序settings get accessed 的方式也发生了变化,因此请确保您编写了正确的代码来接收值。

      【讨论】:

        猜你喜欢
        • 2021-04-07
        • 2017-10-27
        • 2020-04-28
        • 2021-06-11
        • 2020-03-09
        • 2017-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多