text 在.net核心中添加种子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 在.net核心中添加种子相关的知识,希望对你有一定的参考价值。

1. in Data folder, add a file called DutchSeeder.cs

2. in this file, for example
public class DutchSeeder
{
    private readonly DutchContext context;
    private readonly IHostingEnvironment hosting;

    public DutchSeeder(DutchContext context, IHostingEnvironment hosting) {
        this.context = context;
        this.hosting = hosting;
    }

    public void Seed()
    {
        this.context.Database.EnsureCreated();
        if (!this.context.Products.Any()) {
        **read json file and add to DbSet(List)**
            var filePath = Path.Combine(this.hosting.ContentRootPath, "Data/art.json");
            var json = File.ReadAllText(filePath);
            var products = JsonConvert.DeserializeObject<IEnumerable<Product>>(json);
            this.context.AddRange(products);

            var order = new Order()
            {
                OrderDate = DateTime.Now,
                OrderNumber = "12345",
                Items = new List<OrderItem>() {
                    new OrderItem(){
                        Product = products.First(),
                        Quantity = 5,
                        UnitPrice = products.First().Price
                    }
                }
            };
            this.context.Add(order);
            this.context.SaveChanges();
        }
    }
}

3. in Startup.cs, 

in ConfigureServices method,
services.AddTransient<DutchSeeder>();

in Configure method,
if (env.IsDevelopment())
{
    using (var scope = app.ApplicationServices.CreateScope()) {
        var seeder = scope.ServiceProvider.GetService<DutchSeeder>();
        seeder.Seed();
    }
}

以上是关于text 在.net核心中添加种子的主要内容,如果未能解决你的问题,请参考以下文章

实体框架核心2.1中的种子关系数据

在具有种子实体的表中添加数据后出现重复键错误

text 在.net核心中使用urlHelper

text 在.net核心中创建api控制器

text .net核心中的api控制器

Swift 核心数据关系和种子数据