为了能到远方,脚下的每一步都不能少.|

lmyyyy

园龄:2年8个月粉丝:7关注:10

10月12日总结

在前面我们基本把应用框架的基础设施搭建完成。接下来我们就得着手处理一下种子数据的问题。
在一个基础框架里面,种子数据很重要,比如一些基础数据,初始用户等等,这些都需要初始化,否则程序启动却无法使用就很尴尬了。

IDataSeeder#

首先定义一个种子数据接口

using Wheel.DependencyInjection;

namespace Wheel.DataSeeders

{

public interface IDataSeeder : ITransientDependency
{
Task Seed(CancellationToken cancellationToken = default);
}

}

接下来所有的种子数据实现都需要继承这个接口。

DataSeederExtensions#

封装一个扩展方法,获取所有IDataSeeder的实现,并执行数据初始化。

namespace Wheel.DataSeeders

{

public static class DataSeederExtensions
{
public static async Task<IApplicationBuilder> SeedData(this IApplicationBuilder app)
{
var dataSeeders = app.ApplicationServices.GetServices<IDataSeeder>();
foreach (var dataSeeder in dataSeeders)
{
await dataSeeder.Seed();
}
return app;
}
}

}

在Program中添加代码

var app = builder.Build();

//初始化种子信息

await app.SeedData();

这样就初步完成了种子数据的配置。

实现种子数据#

本文作者:lmyyyy

本文链接:https://www.cnblogs.com/lmyy/p/17767108.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   lmyyyy  阅读(7)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起