我正在尝试使用 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 连接 - 欢迎任何建议。