我的Docke-CE学习笔记(03)

Posted liumuu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的Docke-CE学习笔记(03)相关的知识,希望对你有一定的参考价值。

新建一个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 override void 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)的主要内容,如果未能解决你的问题,请参考以下文章

我的Docke-CE学习笔记(02)

学习笔记:python3,代码片段(2017)

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

学习 PyQt5。在我的代码片段中找不到错误 [关闭]

DOM探索之基础详解——学习笔记

Ext.Net学习笔记03:Ext.Net MessageBus用法