ef core 初始化数据
在之前的ef中初始化数据可以重写Seed方法初始化数据
ef core中没有这个方法
添加一个IWebHost扩展方法
public static class IWebHostExtensions { public static IWebHost Migrate(this IWebHost webhost) { using (var scope = webhost.Services.GetRequiredService<IServiceScopeFactory>().CreateScope()) { using (var dbContext = scope.ServiceProvider.GetRequiredService<BlogDbContext>()) { dbContext.Database.Migrate(); SeedData.Initialize(dbContext);//初始化数据 return webhost; } } } }
定义初始化类SeedData
public static class SeedData { public static void Initialize(BlogDbContext context) { using (context) { if (context.SysUserInfo.Any()) { return;//如果有管理员信息表示已经初始化 } context.SysUserInfo.Add( new SysUserInfo() { Status=1, LoginName="admin", RealName="管理员", Password="123456", CreateTime= DateTime.Now, UpdateTime=DateTime.Now } ); context.BlogCategory.Add( new BlogCategory() { Id=1, CategoryType= Enum.BlogCategoryType.General,Enable=true, Name="默认分类" , Pid=0, Sort=99, CreateTime= DateTime.Now, UpdateTime= DateTime.Now, IsNav=false} ); context.SaveChanges(); } } }
在Program中的Main方法里执行Migrate
public class Program { public static void Main(string[] args) { // BuildWebHost(args).Run(); var host = BuildWebHost(args) .Migrate();//初始化数据 host.Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)