创建项目及添加引用
Install-Package MySql.EntityFrameworkCore
添加实体及上下文对象
新建文件夹Models>添加实体 例:
/// <summary>
/// 用户表
/// </summary>
public class userInfo
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 密码
/// </summary>
public string PassWord { get; set; }
}
新建文件夹Data>添加上下文对象 例:
/// <summary>
/// 数据库上下文
/// </summary>
public class BlogContext : DbContext
{
/// <summary>
/// 数据库上下文
/// </summary>
/// <param name="options"></param>
public BlogContext(DbContextOptions<BlogContext> options) : base(options)
{
}
/// <summary>
/// 用户
/// </summary>
public DbSet<userInfo> UserInfo { get; set; }
}
添加数据库配置
在appsettings.json中添加数据库链接
"ConnectionStrings": {
"DefaultConnection": "server=127.0.0.1;port=3306;database=SimpleBlog;uid=sa;pwd=123;"
}
在Startup.cs中ConfigureServices添加数据库配置
services.AddDbContext<BlogContext>(options =>
options.UseMySQL(Configuration.GetConnectionString("DefaultConnection")));
初始化数据库
在 Data 文件夹下,新建DbInitializer
类:
public static class DbInitializer
{
public static void Initialize(BlogContext context)
{
context.Database.EnsureCreated();
// 存在则不操作.
if (context.UserInfo.Any())
{
return; // DB has been seeded
}
//初始化用户表
var users = new userInfo[]
{
new userInfo{UserName="admin",PassWord=密码,CreateTime=DateTime.Now}
};
foreach (userInfo u in users)
{
context.UserInfo.Add(u);
}
context.SaveChanges();
}
}
在Program.cs中加入数据库初始化代码
public static void Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
CreateDbIfNotExists(host);
host.Run();
}
private static void CreateDbIfNotExists(IHost host)
{
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
var context = services.GetRequiredService<BlogContext>();
DbInitializer.Initialize(context);
}
catch (Exception ex)
{
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "An error occurred creating the DB.");
}
}
}
添加控制器
根据需求添加相应的控制器
添加成功控制器,就初步完成了在.net core中使用ef for mysql,可以调用接口查看
一般项目中最好加入Swagger进行接口文档说明
https://blog.csdn.net/qq_36535245/article/details/118255646
官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-mvc/?view=aspnetcore-5.0