微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c#-具有ef核心迁移功能的.net core 2与docker正在开发中

我正在开发一个新项目,该项目将在一个容器中进行托管,因此我想在整个过程中与docker一起开发.但是,似乎从命令行运行的实体框架迁移并不了解正在运行的数据库服务.

我的连接字符串:

"DefaultConnection": "Server=db;Database=Site;User=sa;Password=pwd;"

我的泊坞窗撰写:

version: '3'

services:
  db:
    image: microsoft/mssql-server-windows-express
    environment:
          sa_password: "pwd"
          ACCEPT_EULA: "Y"
        networks:
          - testnetwork

  site:
    image: site
    build:
      context: .
      dockerfile: Site\Dockerfile
    environment:
      - "Data:sqlServerConnectionString=Server=db;Database=HSRDC;User Id=sa;Password=pwd;MultipleActiveResultSets=true;App=site"
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
          - "80"
        networks:
          - testnetwork
        depends_on:
          - db

    networks:
      testnetwork:
        external:
          name: nat

我的带有surecreated作品的启动:

public static void Initialize(CustomerDbContext context)
    {
        context.Database.EnsureCreated();

但是,在以后的开发中,我想过渡到迁移.当我尝试使用dotnet ef数据库更新错误更新数据库时:

System.Data.sqlClient.sqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to sql Server. The server was not found or was not accessible.

如果我检查容器并获取ip地址,然后更改连接字符串以包含IP,例如:

"DefaultConnection": "Server=172.20.159.97;Database=HSRDC;User=sa;Password=SFMasc32*;"

迁移将正常进行.

但是,这很笨拙,因为我需要运行以启动容器,然后停止并获取IP地址,然后使用IP修改它们的连接字符串,然后再次运行,然后通过CLI进行迁移.

我可以看到的选项是在撰写文件中指定IP地址,并在连接字符串中指定该IP的硬代码,但是在v3中,似乎无法指定IP address.

有没有一种方法可以使它与Visual Studio中的Docker进行开发并与迁移和Docker更加无缝地协作?

解决方法:

如果您的IP正常运行,但名称无效.然后尝试提供DBServer的全名,例如DBServer.domain.xyz

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐