数据的初始化(使用json文件)

数据的初始化(使用json文件)

下面展示一些 内联代码片

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using FakeXiecheng.API.Models;
using Microsoft.EntityFrameworkCore;
//因为需要读写文件
using System.IO;
//Path.GetDirectoryName获取文件夹地址,需要使用C#的反射机制,添加命名空间
using System.Reflection;
//json数据的转换需要
using Newtonsoft.Json;
namespace FakeXiecheng.API.Database
{
    public class AppDbContext:DbContext
    {
        public AppDbContext(DbContextOptions<AppDbContext> options):base(options)
        {

        }
        public DbSet<TouristRoute> TouristRoutes { get; set; }
        public DbSet<TouristRoutePicture> TouristRoutePictures { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
       		 //直接添加数据
            //modelBuilder.Entity<TouristRoute>().HasData(new TouristRoute() { 
            //    Id=Guid.NewGuid(),
            //    Title = "ceshititle",
            //    Description = "shouming",
            //    OriginalPrice = 0,
            //    CreateTime = DateTime.UtcNow
            //});

			//通过josn文件添加数据到数据库
           //得到json文件数据
           //Path.GetDirectoryName获取文件夹地址,需要使用C#的反射机制,添加命名空间
           //JsonConvert.DeserializedObject反序列json文件
            var touristRouteJsonData = File.ReadAllText(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) +@"/Database/touristRoutesMockData.json");

            //反序列json数据为一个集合
            IList<TouristRoute> touristRoutes = JsonConvert.DeserializeObject<IList<TouristRoute>>(touristRouteJsonData);

            //添加数据到数据库
            modelBuilder.Entity<TouristRoute>().HasData(touristRoutes);

            var touristRoutePictureJsonData = File.ReadAllText(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"/Database/touristRoutePicturesMockData.json");
            IList<TouristRoutePicture> touristRoutePictures = JsonConvert.DeserializeObject<IList<TouristRoutePicture>>(touristRoutePictureJsonData);
            modelBuilder.Entity<TouristRoutePicture >().HasData(touristRoutePictures);
            base.OnModelCreating(modelBuilder);
        }
    }
}

下面展示一些 内联代码片

touristRoutePicturesMockData.json文件

[
  {
    "id": 2,
    "TouristRouteId": "12dc1743-f1a0-410e-84fa-d2b8d1e46321",
    "url": "../../assets/images/1.jpg"
  },
  {
    "id": 3,
    "TouristRouteId": "12dc1743-f1a0-410e-84fa-d2b8d1e46322",
    "url": "../../assets/images/1.jpg"
  },
  {
    "id": 4,
    "TouristRouteId": "12dc1743-f1a0-410e-84fa-d2b8d1e46323",
    "url": "../../assets/images/1.jpg"
  },
  {
    "id": 5,
    "TouristRouteId": "12dc1743-f1a0-410e-84fa-d2b8d1e46324",
    "url": "../../assets/images/1.jpg"
  }
]


touristRoutesMockData.json文件

[
  {
    "id": "12dc1743-f1a0-410e-84fa-d2b8d1e46321",
    "title" : "1",
    "description": "one day",
    "originalPrice": 11999.99,
    "discountPresent": 0.1,
    "features": "<div class=\"bd\"><p style = \"text-align:center\">",
    "fees": "<div>费用包含<div>",
    "notes": "<div>费用包含<div>"
  },
  {
    "id": "12dc1743-f1a0-410e-84fa-d2b8d1e46322",
    "title": "法国一日游",
    "description": "one day",
    "originalPrice": 11999.99,
    "discountPresent": 0.1,
    "features": "<div class=\"bd\"><p style = \"text-align:center\">",
    "fees": "<div>费用包含<div>",
    "notes": "<div>费用包含<div>"
  },
  {
    "id": "12dc1743-f1a0-410e-84fa-d2b8d1e46323",
    "title": "美国一日游",
    "description": "one day",
    "originalPrice": 11999.99,
    "discountPresent": 0.1,
    "features": "<div class=\"bd\"><p style = \"text-align:center\">",
    "fees": "<div>费用包含<div>",
    "notes": "<div>费用包含<div>"
  },
  {
    "id": "12dc1743-f1a0-410e-84fa-d2b8d1e46324",
    "title": "日本一日游",
    "description": "one day",
    "originalPrice": 11999.99,
    "discountPresent": 0.1,
    "features": "<div class=\"bd\"><p style = \"text-align:center\">",
    "fees": "<div>费用包含<div>",
    "notes": "<div>费用包含<div>"
  }
]




posted @ 2021-07-11 19:54  有诗亦有远方  阅读(39)  评论(0)    收藏  举报  来源