Как заполнить базу данных с помощью JSON в ASP.NET MVC - PullRequest
0 голосов
/ 14 мая 2018

Итак, у меня есть файл json со следующими значениями: My JSON

, и мне нужно создать базу данных MSSQL для него, используя ASP.NET MVC и Entity Framework.Мой вопрос будет состоять из двух частей.

  1. Как мне заполнить базу данных этим JSON?
  2. Как должна выглядеть или записываться моя модель?Мне особенно любопытно о спецификациях и части изображения.

[Редактировать] Метод семян

        using (StreamReader jsonData = new StreamReader(System.Web.HttpContext.Current.Server.MapPath("~/Resources/products.json")))
        {
            List<Product> products = JsonConvert.DeserializeObject<List<Product>>(jsonData.ReadToEnd());
            products.ForEach(s => context.Products.AddOrUpdate(s));
            context.SaveChanges();
        }

[Редактировать] Моя модель:

    public class Product
{
    public int id { get; set; }

    public string name { get; set; }

    public double price { get; set; }

    public string specsmanufacturer { get; set; }

    public int specsstorage { get; set; }

    public string specsos { get; set; }

    public int specscamera { get; set; }

    public string imagesmall { get; set; }

    public string imagelarge { get; set; }
}

1 Ответ

0 голосов
/ 14 мая 2018

Вы можете сгладить свою модель (1 таблица класса 1) или сохранить сущности в соответствующих таблицах (3 таблицы класса 3).

Редактировать: модель плоского класса.

public class Thingy
{
   [Key]
   public int ID{get;set;}
   public string Name{get;set;}
   public decimal Price{get;set;}
   public string SpecsManufacturer{get;set;}
   public int SpecsStorage{get;set;}
   public string SpecsOS{get;set;}
   //etc
}

Если вы используете Code-first и у вас есть Configuration.cs в папке Migrations, вы можете переопределить метод Seed:

protected override void Seed(DataContext context)
{
   //Populate using whatever method you want.
}

Метод Seed запускается каждый раз, когда вы запускаете команду update-database для своей базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...