我的Docke-CE學習筆記(03)
阿新 • • 發佈:2018-03-04
inf exception addm entity 註入 provider ase mod ise
新建一個Asp.net Core 2.0 WebAPI項目。
添加EntityFrameworkCore引用
建立Data,Models文件夾
Models內建立User.cs
namespace User.API.Models { public class User { public int Id { get; set; } public string Name { get; set; } public string Company { get; set; } public string Title { get; set; } } }
Data內建立UserContext.cs,繼承自DBContext
namespace User.API.Data { public class UserContext : DbContext { // 傳一個構造函數 // base調用構造函數 public UserContext(DbContextOptions<UserContext> options) : base(options) { } protected overridevoid OnModelCreating(ModelBuilder modelBuilder) { // 重寫方法,AppUser生成Users modelBuilder.Entity<AppUser>() .ToTable("Users") .HasKey(u => u.Id); base.OnModelCreating(modelBuilder); } public DbSet<AppUser> Users { get; set; } } }
appsettings.json添加連接字符串
{ "Logging": { "IncludeScopes": false, "Debug": { "LogLevel": { "Default": "Warning" } }, "Console": { "LogLevel": { "Default": "Warning" } } }, "ConnectionStrings": { "MySqlUser": "server=127.0.0.1;port=3006;database=fieer_mysql;userid=fieer;password=password " } }
Startup.cs內添加服務,生成默認數據
namespace User.API { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { // 添加 services.AddDbContext<UserContext>(options => { options.UseMySQL(Configuration.GetConnectionString("MySqlUser")); }); services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(); InitUserDatabase(app); } // 添加默認用戶 public void InitUserDatabase(IApplicationBuilder applicationBuilder) { // 依賴註入 using (var scope = applicationBuilder.ApplicationServices.CreateScope()) { var userContext = scope.ServiceProvider.GetRequiredService<UserContext>(); if (!userContext.Users.Any()) { userContext.Users.Add(new Models.AppUser { Name = "fieer" }); userContext.SaveChanges(); } } } } }
我的Docke-CE學習筆記(03)