0

我正在尝试使用 EF-Core,代码优先,我已经构建了我的迁移并运行它们,没有问题(它们已经工作了)。

但是,当我尝试调用上下文来保存更改时,我收到以下错误:

无法连接到任何指定的 MySQL 主机

显然,这是一个奇怪的错误,事实上迁移工作,但是我想知道这是否与在 Docker 中运行的 MySQL 和在 Docker 中运行的应用程序有关?

语境:

public class TextContext : DbContext
{
    public DbSet<Person> People { get; set; }


    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseMySql("Server=127.0.0.1; Port=3306; Database=Test; Uid=root; Pwd=password;");
    }
}

调用类:

public class Person
{
    public int PersonId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public virtual Job Job { get; set; }

    public void Save()
    {
        try
        {
            using (var _context = new TextContext())
            {
                _context.People.Add(this);
                _context.SaveChanges();
            }
        }
        catch (Exception e)
        {
            throw;
        }
    }
}

称呼:

public string CreatePerson()
{
    Person person = new Person();
    person.FirstName = "Phil";
    person.LastName = "Regan";
    person.Job = new Job() { JobTitle = "Developer", Salary = 123.12} ;
    person.Save();

    return "done";
}

Docker 设置为允许来自 3306 的连接,我能够从 pm 控制台运行迁移,并且能够通过 HeidiSQL 连接 - 欢迎任何建议。

4

0 回答 0