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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步