美文网首页ASP.NET Core C#.NET Core
ASP.NET Core 2.0 通过EF Core使用MySQ

ASP.NET Core 2.0 通过EF Core使用MySQ

作者: GongZH丶 | 来源:发表于2018-05-17 10:24 被阅读116次

    以在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<UserDbContext> options): base(options)
            {
            }
            
            public DbSet<User> Users { get; set; }
    
            //自定义DbContext实体属性名与数据库表对应名称(默认 表名与属性名对应是 User与Users)
            protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                modelBuilder.Entity<User>().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<UserDbContext>(d => d.UseMySQL(Configuration.GetConnectionString("Default")));
    
                services.AddMvc();
            }
    

    六、往MySQL插入数据

        public class UserDataAccess
        {
            private readonly ProDbContext _context;
    
            //在构造函数中显示注入
            public UserDataAccess(ProDbContext 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使用MySQ

        本文链接:https://www.haomeiwen.com/subject/nsovdftx.html