如何在ASP.NET MVC中使用JSON为数据库设定种子

时间:2018-05-14 13:52:21

标签: asp.net-mvc entity-framework

所以我有一个带有这些值的json文件: My JSON

我必须使用ASP.NET MVC和Entity框架为它创建一个MSSQL数据库。我的问题将分为两部分。

  1. 如何使用此JSON为数据库设定种子?
  2. 我的模型应该如何显示或写入?我对规格和图像部分特别好奇。
  3. [编辑] 种子方法

            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 :(得分:0)

您可以展平您的模型(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并且在Migrations文件夹中有Configuration.cs,那么您可以覆盖Seed方法:

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

每次对数据库运行命令update-database时,Seed方法都会运行。