.NET 6 Entity Framework Core Db First(2) 增删改查
基础代码
- 在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);
}
}
}
.NET 6 Entity Framework Core Db First(2) 增删改查的更多相关文章
- 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序
使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...
- EF(Entity Framework)通用DBHelper通用类,增删改查以及列表
其中 通用类名:DBhelper 实体类:UserInfo 1 //新增 2 DBHelper<UserInfo> dbhelper = new DBHelper<UserInfo& ...
- Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio » 增、查、改、删操作
Create, Read, Update, and Delete operations¶ 5 of 5 people found this helpful By Tom Dykstra The Con ...
- 基于Entity Framework的自定义分页,增删改的通用实现
简介 之前写个一个基于Dapper的分页实现,现在再来写一个基于Entity Framework的分页实现,以及增删改的通用实现. 代码 还是先上代码:https://github.com/jinwe ...
- Entity Framework 学习系列(4) - EF 增删改
目录 写在前面 一.开发环境 二.创建项目 三.新增 1.单表新增 2.批量新增 3.多表新增 四.编辑 1.先查询,后编辑 2.创建实体,后编辑 五.删除 写在前面 在上一小节中,学习了如何 通过C ...
- Core Data 基本数据操作 增删改查 排序
所有操作都基于Core Data框架相关 API,工程需要添加CoreData.framework支持 1.增 NSEntityDescription insertNewObjectForEntit ...
- 在Apworks数据服务中使用基于Entity Framework Core的仓储(Repository)实现
<在ASP.NET Core中使用Apworks快速开发数据服务>一文中,我介绍了如何使用Apworks框架的数据服务来快速构建用于查询和管理数据模型的RESTful API,通过该文的介 ...
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之一(二十七)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- Entity Framework Core 1.1 升级通告
原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...
- UWP开发之ORM实践:如何使用Entity Framework Core做SQLite数据持久层?
选择SQLite的理由 在做UWP开发的时候我们首选的本地数据库一般都是Sqlite,我以前也不知道为啥?后来仔细研究了一下也是有原因的: 1,微软做的UWP应用大部分也是用Sqlite.或者说是微软 ...
随机推荐
- 使用c#强大的表达式树实现对象的深克隆
一.表达式树的基本概念 表达式树是一个以树状结构表示的表达式,其中每个节点都代表表达式的一部分.例如,一个算术表达式 a + b 可以被表示为一个树,其中根节点是加法运算符,它的两个子节点分别是 a ...
- ASP.NET Core Web中使用AutoMapper进行对象映射
前言 在日常开发中,我们常常需要将一个对象映射到另一个对象,这个过程中可能需要编写大量的重复性代码,如果每次都手动编写,不仅会影响开发效率,而且当项目越来越复杂.庞大的时候还容易出现错误.为了解决这个 ...
- java学习之旅(day.02)
java运行机制 编译型:转换为计算机可读的语言 解释型:用什么,读什么 预编译:java文件(源程序)通过javac命令到class文件,class文件(类)放入类加载器,这个类就加载到JVM中了, ...
- IDEA使用——新建WEB项目及WEB项目的运行
第一步:新建项目 1.2勾选Web Application 1.3填写项目名 第二步:项目配置 2.1在WEB-INF目录下新建 classes 和 lib 目录(过程省略) 2.2将classes目 ...
- Hangfire 使用笔记 任务可以分离到别的项目中,无需重复部署Hangfire,通过API方式通信。
"巨人们"的地址 Hangfire Mysql: https://github.com/arnoldasgudas/Hangfire.MySqlStorage 在获取set表数据的 ...
- itestwork(爱测试) 开源一站式接口测试&敏捷测试工作站 9.0.2Rc2发布
(一)itest 简介 itest work (爱测试) 一站式工作站让测试变得简单.敏捷,"好用.好看,好敏捷" ,是itest wrok 追求的目标.itest work 包 ...
- umount 报错umount: /new_room: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
挂载逻辑卷后,尝试更新逻辑卷的文件系统 [root@server lost+found]# umount /new_room/ umount: /new_room: target is busy. ( ...
- Linux网络驱动
1 简介 1.1 硬件说明 嵌入式网络硬件分为:MAC和PHY.MAC一般时SOC内置,PHY是外部器件. (1)SOC内部没有MAC 如果SOC内部没有网络MAC外设,可使用外置的MAC,一般外置的 ...
- 绘图与可视化--pandas中的绘图函数
matplotlib API函数都位于matplotlib.pyplot模块中. 本节代码中引入的约定为:import matplotlib.pyplot as plt numpy库也会用到,约定:i ...
- kettle从入门到精通 第十三课 kettle 字符串操作
1.本次示例讲解一些常用的字符串操作,有字段拼接,枚举值转换,计算器.字符串替换.字段拆分. 2.输入元数据有firstName.secondName.sex.salary.englishName.o ...