以在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数据库 大概就是这样了,如有错误,请不吝指出。
网友评论