首页 > 其他分享 >.NET 6 Entity Framework Core Db First(2) 增删改查

.NET 6 Entity Framework Core Db First(2) 增删改查

时间:2024-05-31 14:22:23浏览次数:15  
标签:Core demoContext 改查 builder Db result student var public

基础代码

  • 在Program.cs注入DemoContext
  • 新建HomeController,继承ControllerBase
  • 添加Controller特性,[ApiController] [Route("[controller]/{action=index}")]
  • 通过构造函数获取数据库上下文实例(DemoContext) 

接口地址

为了方便测试,这里全部使用了HttpGet,也不需要传参数

1、查询

  • http://localhost:5109/home
  • http://localhost:5109/home/get/2

2、添加

  • http://localhost:5109/home/add

3、修改

  • http://localhost:5109/home/edit

4、删除

  • http://localhost:5109/home/delete

具体代码

Program.cs

using EFDBFirstDemo.Model.Context;
using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

var connectionString = builder.Configuration.GetConnectionString("demo");
builder.Services.AddDbContext<DemoContext>(options => options.UseSqlServer(connectionString));

//数据库异常筛选器
builder.Services.AddDatabaseDeveloperPageExceptionFilter();

builder.Services.AddControllers();

var app = builder.Build();

// Configure the HTTP request pipeline.

app.UseAuthorization();

app.MapControllers();

app.Run();

HomeController.cs

namespace EFDBFirstDemo.API.Controllers
{
    [ApiController]
    [Route("[controller]/{action=index}")]
    public class HomeController : ControllerBase
    {
        public DemoContext _demoContext;

        public HomeController(DemoContext demoContext)
        {
            _demoContext = demoContext;
        }

        public IActionResult Index()
        {
            var result = _demoContext.Students.ToList();

            return Ok(result);
        }

        [Route("{id?}")]
        public async Task<IActionResult> Get(int id)
        {
            var result = await _demoContext.Students.FindAsync(id);
            //var result = _demoContext.Students.FirstOrDefault(l => l.Id == id);
            return Ok(result);
        }

        //[HttpPost]
        public async Task<IActionResult> Add()
        {
            var student = new Student
            {
                StudentName = "张三",
                EnrollmentData = DateTime.Now
            };
            _demoContext.Add(student);
            var result = await _demoContext.SaveChangesAsync();
            return Ok(result);
        }

        //[HttpPost]
        public async Task<IActionResult> Edit()
        {
            var student = new Student
            {
                Id = 2,
                StudentName = "李四",
                EnrollmentData = DateTime.Now
            };
            _demoContext.Update(student);
            var result = await _demoContext.SaveChangesAsync();
            return Ok(result);
        }

        //[HttpPost]
        public async Task<IActionResult> Delete()
        {
            var student = new Student
            {
                Id = 1
            };
            //_demoContext.Students.Remove(student);
            _demoContext.Remove(student);
            var result = await _demoContext.SaveChangesAsync();
            return Ok(result);
        }
    }
}

 

标签:Core,demoContext,改查,builder,Db,result,student,var,public
From: https://www.cnblogs.com/Zing/p/18072738

相关文章

  • db2 表被锁住
    在DB2中,如果你需要查询哪个进程占用了表的锁,可以使用以下步骤: 1.**查询锁表情况**:  使用命令获取锁的详细信息,这将帮助你了解哪些表被锁,以及是由哪个DB2进程(agent_id)锁定的:  ```bash  db2getsnapshotforlockson<databasename>  ```  这个命令会......
  • MySQL 数据库中简单的创表语句以及增删改查语句
    假设我们有一个学生表students,包含以下列:id(学生编号)、name(学生姓名)、age(学生年龄),以下是创建这个表的SQL语句:CREATETABLEstudents(  idINTPRIMARYKEY,  nameVARCHAR(50),  ageINT);在这个创建语句中:•CREATETABLE:用于创建新表。•students:表......
  • 工控现场什么情况下会采用Modbus转Profinet网关
    工控现场什么情况下会采用Modbus转Profinet网关一、原因:工控现场需要将Modbus转换为Profinet协议,这是由于在工业控制领域中,不同设备之间的通信协议多样,而Modbus和Profinet分别代表着两种不同的通信协议。Modbus是一种最常见的工业通信协议,但其速度较慢,数据量有限,在一些需要快速......
  • 基恩士PLC与ModbusTCP转Profibus网关实现与激光设备的高效连接
    本文将探讨如何通过使用基恩士PLC以及无锡耐特森ModbusTCP转Profibus网关来实现与激光设备的高效连接。在当今工业自动化领域,不同厂商的硬件设备和软件系统之间的互联互通性成为了提高生产效率、实现智能制造的关键因素。其中,可编程逻辑控制器(PLC)作为工业控制的核心,与其他设备的通......
  • 为 MySQL/MariaDB 开启 Binlog 功能
    介绍说到Binlog就不得不提一下MySQLServer的四种类型的日志:ErrorLog、GeneralQueryLog、SlowQueryLog和BinaryLog。ErrorLog即错误日志,记录mysqld发生的一些错误。GeneralQueryLog即一般查询日志,记录mysqld正在做的事情,如客户端的连接和断开、来自客......
  • 华为云GaussDB NoSQL云原生多模数据库的超融合实践
    华为云GaussDBNoSQL云原生多模数据库的超融合实践举报 GeminiDB-Redis博客 发表于2021/11/1613:37:30  2w+  0  0 【摘要】中国数据库大会分享,主题为GaussDBNoSQL架构设计。引言本届中国数据库技术大会(DTCC),不管是公有云数据库厂商,还是传统数据库厂商,都......
  • SpringBoot整合Mybatis实现增删改查功能
    目录1.添加依赖2.配置数据源和MyBatis3.创建实体类4.Mapper接口与映射文件5.编写服务层6.控制器SpringBoot整合MyBatis是一个相对直接的过程,主要涉及添加依赖、配置数据源、配置MyBatis、创建实体类、Mapper接口和映射文件、以及编写服务层来实现增删改......
  • influxdb v2.7.6 安装
    V1.0版本网上介绍比较多,就简单说下,它默认配置文件是influxdb.confV2.0版本的默认配置文件是config.toml,里面有个参数是engine-path,修改了之后就可以调整数据存储路径官方在线安装influxdata-archive_compat.keyGPGfingerprint:9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8......
  • 使用Java API 操作MongoDB
    除了通过启动mongo进程进入Shell环境访问数据库外,MongoDB还提供了其他基于编程语言的数据库访问方法。MongoDB官方提供了编程语言的驱动包,利用这些驱动包可以使用编程方法连接并操作MongoDB数据库。想要使用 Java程序操作 MongoDB,需要确保您的电脑上已经安装了Mong......
  • error in ./node_modules/@intlify/core-base/dist/core-base.cjs
    ERRORFailedtocompilewith1error......