修改日期 | 修改人 | 备注 |
2020-03-05 18:10:00[当前版本] | 余承浩 | 格式调整 |
2020-03-05 18:08:07 | 余承浩 | 格式调整 |
2020-03-05 18:07:13 | 余承浩 | 创建版本 |
前提:
Step1:项目引用添加 Microsoft.EntityFrameworkCore
Step2:
在Startup.cs文件中的ConfigureServices方法内添加代码
1
|
services.AddDbContext<CoreDbContext>(options => options.UseSqlServer("你的数据库链接字符串"));
|
Step3:
新建文件DbContextSeed.cs
using Microsoft.EntityFrameworkCore; using RunGo.Core.Expand; using RunGo.Core.Managing; using System; using System.Linq; using System.Threading.Tasks; using UtilHelp; namespace RunGo.Core.Web.Host.Startup.Initialize { namespace mvcforcookie.Data { public class DbContextSeed { private string badStr = "初始化数据库失败"; private string okStr = "初始化数据库成功"; public async Task SeedAsync(DbContext context, IServiceProvider service) { if (context.Set<Tenants>().Count() == 0) { //创建初始租户 var defultTenant = new Tenants() { Name = DefaultSet.DefaultName, TenancyName = DefaultSet.DefaultCName, PassWord = EncryptionHelp.MD5Encrypt64("123456", DefaultSet.DefaultName), Id = DefaultSet.DefaultId }; try { await context.AddAsync(defultTenant); var result = await context.SaveChangesAsync(); if (result == 0) Console.WriteLine(badStr); else Console.WriteLine(okStr); } catch (Exception e) { Console.WriteLine(badStr); } } } } } }
新建文件 InitializeTheDBExtensions.cs
using Microsoft.AspNetCore.Hosting; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using System; namespace RunGo.Core.Web.Host.Startup.Initialize { public static class InitializeTheDBExtensions { /// <summary> /// 初始化数据库 /// </summary> /// <param name="host"></param> /// <param name="sedder"></param> /// <returns></returns> public static IWebHost InitializeDbContext<TContext>(this IWebHost host, Action<TContext, IServiceProvider> sedder) where TContext : DbContext { using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var context = services.GetService<TContext>(); try { context.Database.Migrate(); sedder(context, services); } catch (Exception ex) { Console.WriteLine("初始化失败"); } } return host; } } }
Step4:在Main方法里调用初始化方法
public static void Main(string[] args) { BuildWebHost(args) .InitializeDbContext<CoreDbContext>((context, services) => { new DbContextSeed().SeedAsync(context, services).Wait(); }) .Run(); }
Step5:执行项目即可看到成果了。