- 文章介绍
- 资源连接
- Code Frist
- 新建项目一个Web API项目:EFcore
- 添加mySQL数据库连接字符串
- 项目文件夹中新建一个文件夹:Models
- Codefrist 将代码映射到数据库
- 本机查看mysql数据库新建了一个表
- 添加几个控制对数据库进行操作
- 实现EFcore连接本地Mysql数据库
- 最新版本的ASP.NET.CORE.Web API 不是MVC方式
- 实现dbfrist和code 。
第一篇:第一次使用efcore
第三篇: EFcore dbfrist链接mysql数据库
本篇源码:本篇源码
第一篇源码:第一篇源码
- 取消配置HTTPS
- 安装如下nuget包
Entity Framework Core Entity Framework Core.Tools Entity Framework Core.SqlServer //这个连接sqlsever需要 pomelo.Entity Framework Core.mysql //这个连接mysql需要添加mySQL数据库连接字符串
- appsettings.json文件中
"ConnectionStrings": {
"MySQLConnection": "server=localhost;port=3306;uid=root;pwd=liai1234;database=EFCoredb"
},
项目文件夹中新建一个文件夹:Models
- 添加两个类:Parameter 和 ParameterContext
- Parameter .cs
public partial class Parameter
{
[Key]
[Column("id")]
public int Id { get; set; }
[Column("auto")]
public string Auto { get; set; } = null!;
[Column("plcaddress")]
public string Plcaddress { get; set; } = null!;
[Column("type")]
public string Type { get; set; } = null!;
[Column("swith")]
public string Swith { get; set; } = null!;
[Column("ceiling")]
public string Ceiling { get; set; } = null!;
[Column("limit")]
public string Limit { get; set; } = null!;
}
- ParameterContext.cs
public partial class ParameterContext : DbContext
{
public ParameterContext()
{
}
public ParameterContext(DbContextOptions options)
: base(options)
{
}
public virtual DbSet Parameter { get; set; } = null!;
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.UseCollation("utf8_general_ci")
.HasCharSet("utf8");
//public int Id { get; set; }
//public string UserName { get; set; } = null!;
//public string PassWord { get; set; } = null!;
//public string DepartmentName { get; set; } = null!;
modelBuilder.Entity(entity =>
{
entity.ToTable("Parameter_Table");
entity.Property(e => e.Swith)
.HasMaxLength(200)
.HasColumnName("swith");
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}
- Program.cs
builder.Services.AddDbContextCodefrist 将代码映射到数据库(opt => { string connectionString = builder.Configuration.GetConnectionString("MySQLConnection"); var serverVersion = ServerVersion.AutoDetect(connectionString); opt.UseMySql(connectionString, serverVersion); });
- 点击工具 ->NUGET包管理器 -> 程序包管理器控制台
- 依次执行下列迁移命令,不要执行Remove-Migration
- 如果更改了models,需要删除迁移,然后重新迁移
Get-help Migration //查询命令 Add-Migration init //迁移 Remove-Migration //迁移删除 Update-Database //更新到数据库本机查看mysql数据库新建了一个表 添加几个控制对数据库进行操作
新建控制器:ParameterController
- ParameterController.cs
[Route("api/")]
[ApiController]
public class ParameterController : ControllerBase
{
ParameterContext ParameterContext;
public ParameterController(ParameterContext ParameterContext)
{
this.ParameterContext = ParameterContext;
}
//查找表中所有数据
[HttpGet("parameter/getall")]
public IActionResult GetAll()
{
List ParameterTable = ParameterContext.Parameter.ToList(); //查出所有
return Ok(ParameterTable);
}
//添加一个数据,传入一个不带ID的
[HttpPost("parameter/postone")]
public IActionResult PostOne(Parameter parameter)
{
var Parameter = ParameterContext.Parameter.FirstOrDefault(a => a.Id == parameter.Id);
if (Parameter != null)
{
return BadRequest(new { conut = -1, msg = "添加失败,id重复" });
}
ParameterContext.Parameter.Add(parameter); //添加一个
ParameterContext.SaveChanges();
return Ok();
}
//修改数据,传入对象,找到对应id的数据实现更新
[HttpPost("parameter/modifyone")]
public IActionResult Modify(Parameter parameter)
{
var Parameter = ParameterContext.Parameter.FirstOrDefault(a => a.Id == parameter.Id);
if (Parameter == null)
{
return BadRequest(new { conut = -1, msg = "修改失败,未找到数据" });
}
//修改数据
// ParameterTable.Id = parameter.Id;
Parameter.Ceiling = parameter.Ceiling;
Parameter.Swith = parameter.Swith;
Parameter.Limit = parameter.Limit;
Parameter.Auto = parameter.Auto;
Parameter.Type = parameter.Type;
Parameter.Plcaddress = parameter.Plcaddress;
ParameterContext.Parameter.Update(Parameter);
ParameterContext.SaveChanges();
return Ok(parameter);
}
//移除一个对象,根据id移除
[HttpPost("parameter/Removeone")]
public IActionResult Remove(Parameter parameter)
{
var Parameter = ParameterContext.Parameter.FirstOrDefault(a => a.Id == parameter.Id);
//修改数据
if (Parameter == null)
{
return NotFound();
}
ParameterContext.Parameter.Remove(Parameter);
ParameterContext.SaveChanges();
return Ok(Parameter);
}
}



