ASP.NET Core 2.0 通过EF Core使用MySQL数据库

以在Visual Studio 2017中使用MySQL数据库为例。

一、安装MySql.Data.EntityFrameworkCore

要在ASP.NET Core中使用MySQL数据库,要先安装MySql.Data.EntityFrameworkCore,以Visual Studio 2017为例,通过Nuget包管理器安装MySql.Data.EntityFrameworkCore包。

二、添加Model

    public class User
    {
        //用户Id
        [Key]                              
        public int UserId { get; set; }   
        //用户名
        public string UserName { get; set; }
        //用户密码
        public string Password { get; set; }
    }

三、配置连接字符串

ASP.NET Core中的默认配置文件是appsettings.json文件。在其中添加连接字符串 ConnectionStrings。

{
  "ConnectionStrings": {
    "Default": "server=localhost;user id=root;password=root;database=projectdemocore;charset=utf8;sslMode=None"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

连接字符串指定了MySQL地址,账户,密码,数据库名称,字符集(有其他需求可以自行配置)。在ASP.NET Core中要配置sslMode=None,不然会出错。

四、添加Context类

    public class UserDbContext : DbContext
    {
        public UserDbContext(DbContextOptions options): base(options)
        {
        }
        
        public DbSet Users { get; set; }

        //自定义DbContext实体属性名与数据库表对应名称(默认 表名与属性名对应是 User与Users)
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity().ToTable("Users");
        }
    }

五、在Starup.cs中注册数据库服务(配置Context类的依赖注入)

// This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext(d => d.UseMySQL(Configuration.GetConnectionString("Default")));

            services.AddMvc();
        }

六、往MySQL插入数据

    public class UserDataAccess
    {
        private readonly UserDbContext  _context;

        //在构造函数中显示注入
        public UserDataAccess(UserDbContext  context)
        {
            _context = context;
        }

        //保存用户
        public User SaveUser(User user)
        {
            _context.Users.Add(user);//添加一个user
            _context.SaveChanges();//保存(调用SaveChanges才真正将数据写入了数据库)
            return user;
        }

        //查询用户
        public User SelectUser(User user)
        {
            var users = (from m in _context.Users
                         where m.UserName == user.UserName && m.Password == user.Password
                         select m);
            return users.FirstOrDefault();
        }
    }

在ASP.NET Core 2.0 中通过EF Core使用MySQL数据库 大概就是这样了,如有错误,请不吝指出。

你可能感兴趣的:(ASP.NET Core 2.0 通过EF Core使用MySQL数据库)