首先用vs2019创建一个.net core项目
可以是控制台应用程序,也可以是asp.net core项目
如果你使用控制台应用程序, 则可以在Main方法中直接使用EF Core进行CRUD操作。这通常用于测试或开发时快速进行数据库操作。
如果你使用ASP.NET Core应用程序, 则可以在控制器中使用EF Core进行CRUD操作。这通常用于在Web应用程序中与用户交互时进行数据库操作。
在任何情况下, 都需要创建一个DbContext类, 并使用它来进行数据库操作。
这篇先以控制台应用程序举例
以下是具体步骤:
1.创建一个新的控制台应用程序项目。
2.在项目中添加EF Core依赖项。可以使用以下命令在包管理器控制台中安装EF Core包(同时可以安装MySQL连接器包以及EF Core设计时(Design-Time)组件包):
Install-Package Microsoft.EntityFrameworkCore.Design -Version 3.0.0
Install-Package Pomelo.EntityFrameworkCore.MySql -Version 3.0.0
Install-Package Microsoft.EntityFrameworkCore -Version 3.0.0
3.在项目中创建一个实体类。例如Blog:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApp2
{
public class Blog
{
public int Id { get; set; }
public string Url { get; set; }
}
}
4.创建一个DbContext类, 并将实体类映射到数据库中的表。例如:
using Microsoft.EntityFrameworkCore;
namespace ConsoleApp2
{
public class MyDbContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public MyDbContext(DbContextOptions<MyDbContext> options)
: base(options)
{
}
public MyDbContext()
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySql(
"Server=localhost;Database=mydatabase;User=root;Password=123456;");
}
}
}
5.在Main方法中, 使用EF Core进行CRUD操作。例如, 以下代码演示了如何使用EF Core在数据库中插入一条记录:
using System;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
using (var context = new MyDbContext())
{
// Insert
var blog = new Blog { Url = "http://sample.com" };
context.Blogs.Add(blog);
context.SaveChanges();
// Update
blog.Url = "http://updated.com";
context.Blogs.Update(blog);
context.SaveChanges();
// Delete
// context.Blogs.Remove(blog);
// context.SaveChanges();
}
}
}
}
6.创建数据库迁移
Add-Migration
可以给这个迁移起一个名字或者编号
7.将未应用的迁移应用到数据库
这里使用迁移命令
Update-Database
他会根据DbContent的内容创建数据库mydatabase和表blogs
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySql(
"Server=localhost;Database=mydatabase;User=root;Password=123456;");
//mydatabase
}
public DbSet<Blog> Blogs { get; set; }
//blogs
8.运行项目
blogs表按照Main函数的内容被更改
主要问题就是版本适配,因为使用的是.net core3.1,所以找适配的EF Core MySQL连接器包以及EF Core设计时(Design-Time)组件包版本花费了点时间
https://longsheng.org/post/17239.html