首页 > 代码库 > .NET Core、Docker、Mysql简单之旅(二)

.NET Core、Docker、Mysql简单之旅(二)

一、创建数据库表

      运行数据库:docker restart local-mysql

      用Mysql客户端创建Employees数据库表

      表名:Employees

      Id: int(11) 主键,自动递增
      Name: varchar(32)
      LastName: varchar(32)

 

二、修改project.json

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.EntityFrameworkCore": "1.0.1",
    "MySql.Data.Core": "7.0.4-ir-191",
    "MySql.Data.EntityFrameworkCore": "7.0.4-ir-191"   
  },
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.1"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

三、添加SampleContext.cs

using Microsoft.EntityFrameworkCore;
using MySQL.Data.EntityFrameworkCore.Extensions;

namespace StartMysql{
    public class EmployeesContext :DbContext {
        public EmployeesContext(DbContextOptions<EmployeesContext> options) : base(options) { }

        public DbSet<Employee> Employees { get; set; }
    }

    public static class EmployeesContextFactory {
        public static EmployeesContext Create(string connectionString) {
            var optionsBuilder = new DbContextOptionsBuilder<EmployeesContext>();
            optionsBuilder.UseMySQL(connectionString);

            var context = new EmployeesContext(optionsBuilder.Options);
            context.Database.EnsureCreated();            
            return context;
        }
    }  

    public class Employee {
        public Employee() { }

        public int Id { get; set; }
        public string Name { get; set; }
        public string LastName { get; set; }

    }
}

四、修改Program.cs

using System;

namespace StartMysql
{
    public class Program
    {
        public static void Main(string[] args)
        {
            createEmployee();
        }

        public static void createEmployee() {
            var entry = new Employee() { Name = "John", LastName = "Winston" };
             
            using (var context = EmployeesContextFactory.Create(@"server=localhost;userid=root;pwd=root;port=3306;database=mysql;sslmode=none;"))
            {
               context.Add(entry);
               context.SaveChanges();
            }
             
            Console.WriteLine($"Employee was saved in the database with id: {entry.Id}");           

        }
    }
}

五、执行程序     

      dotnet restore

      dotnet run

      技术分享

.NET Core、Docker、Mysql简单之旅(二)