Как настроить JSON столбцы с Npg sql? - PullRequest
0 голосов
/ 25 марта 2020

Я настраиваю мини-модель и получаю это исключение при выполнении кода с веб-сайта docs .

Вот мой код:

  public class SomeEntity
  {
    public int Id { get; set; }
    [Column(TypeName = "jsonb")]
    public Customer Customer { get; set; }
  }

  public class Customer    // Mapped to a JSON column in the table
  {
    public string Name { get; set; }
    public int Age { get; set; }
    public Order[] Orders { get; set; }
  }

  public class Order       // Part of the JSON column
  {
    public decimal Price { get; set; }
    public string ShippingAddress { get; set; }
  }
using (var dbContext = services.GetRequiredService<AppDbContext>())
{
  await dbContext.Database.MigrateAsync();

  dbContext.SomeEntities.Add(
    new SomeEntity
    {
      Customer = new Customer
      {
        Name = "Roji",
        Age = 35,
        Orders = new[]
        {
          new Order { Price = 3, ShippingAddress = "Somewhere" },
          new Order { Price = 3, ShippingAddress = "Nowhere" }
        }
      }
    });

  await dbContext.SaveChangesAsync();
}

Когда я звоню SaveChanges, я получаю следующее исключение:

Npg sql .PostgresException: 42P01: отношение \ "SomeEntities \" не существует

Здесь 's repro project.

Поскольку я считаю, что выполнил все шаги в руководстве, я открыл здесь проблему тоже.

1 Ответ

1 голос
/ 26 марта 2020

Вы вызываете метод MigrateAsyn c, но в вашем проекте нет реальных миграций (они могут быть созданы с помощью dotnet ef migrations add <name>). Если вы просто играете вокруг, вы, скорее всего, захотите вместо этого вызвать dbContext.Database.EnsureCreated, смотри, как это сделать c page .

...