首先添加seed數據庫
每次應用程序啓動,監測一下,是不是第一次啓動。若是是第一次執行,咱們須要在數據庫內添加一個記錄async
好比說咱們的用戶帳號,咱們在第一次進來的時候,咱們須要有一個管理員ide
在Data文件夾下新建:測試
ApplicationDbContextSeed.csui
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using MvcCookieAuthSample.Models; using Microsoft.Extensions.DependencyInjection; namespace MvcCookieAuthSample.Data { public class ApplicationDbContextSeed { private UserManager<ApplicationUser> _userManager; public async Task SeedAsync(ApplicationDbContext context,IServiceProvider services) { if (context.Users.Any()) { _userManager = services.GetRequiredService<UserManager<ApplicationUser>>(); var defaultUser = new ApplicationUser { UserName = "Administrator", Email = "haogeili@163..com", NormalizedEmail="admin" }; var result=await _userManager.CreateAsync(defaultUser, "Password$123"); if (!result.Succeeded) { throw new Exception("初始默認用戶失敗!"); } } } } }
WebHostMigrationExtensions.csspa
這裏擴展的方法,咱們要擴展的是IWebHostcode
這裏咱們要把依賴注入引入進來orm
包裝器咱們在哪裏使用呢?Program.cs程序啓動文件裏面blog
這樣咱們的初始化就完成了。it
.MigrationDbContext<ApplicationDbContext>((context,services)=> { new ApplicationDbContextSeed().SeedAsync(context, services) .Wait(); })
先把咱們本地的數據庫刪掉。而後再運行咱們的程序
更正代碼
看到咱們執行成功的輸出信息
默認已經初始化的 用戶信息
登錄成功。!!!!!