.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.或者说是微软 ...
随机推荐
- Swift File Manager 三种文件路径查找方法对比
目录 1. 引言 2. 三种文件路径查找方法 2. 1 NSSearchPathForDirectoriesInDomains(_:_:_:) 2.2 urls(for:in:) 2.3 url(fo ...
- n个人围成一圈,顺序排号从1到n。从第一个人开始报数(从一到三如此循环)。凡是报到三的出局,最后剩下的一个人原始编号为?
#include<stdio.h> int main(){ int num,n,i=0,flag=0; //num记录剩余人数,n记录总人数,i为原始编号,flag为编号123时的编号 p ...
- 基于 three.js 加载器分别加载模型
点击查看代码 /** * 参数:模型文件路径,成功回调函数 * * 基于 three.js 加载器分别加载模型 * * 全部加载后通过回调函数传出打印 */ import { FBXLoader } ...
- Linux环境下:程序的链接, 装载和库[动态链接]
静态链接库在程序编译阶段就完成了链接工作,完成链接后,依赖的库就都打入了可执行文件中,所以文件大小一般会比较大. 而动态库链接库是在程序运行时才被链接的,所以磁盘上只要保留一份副本,因此节约了磁盘空间 ...
- JDK源码阅读-------自学笔记(十九)(容器概念初探和泛型概念)
简介 数组存在的优势和劣质 优势 数组是线性序列,从效率和类型检查的角度讲,数组是最好的 劣势 不灵活,数组的大小是预先定义好的,不会随意改变 引入容器 容器这个概念就是装东西的介质,可以理解为能装东 ...
- JDK源码阅读-------自学笔记(九)(常用类型Integer初探)
常用类 主要分为几部分需要学习: 包装类的介绍和使用 字符串的介绍和使用 时间类的介绍和使用 其他类型介绍和使用 包装类(Wrapper Class)基本知识: 1.基本数据类型不是对象,但有时需要将 ...
- docker之企业级镜像仓库Harbor
Harbor概述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的 企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管 ...
- pod(四):pod的重启策略和生命周期
目录 一.系统环境 二.前言 三.pod的重启策略 四.pod的生命周期 一.系统环境 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构 CentOS Linux ...
- HttpWebRequest , HttpWebResponse 调用示例
1, public string sendPost1(string url, string content) { string result = ""; HttpWebReques ...
- objectarx acedInitGet的使用
int rc;TCHAR keyword[20]; acedInitGet(NULL, TEXT("U Y O"));rc = acedGetPoint(ptPre, L" ...