当前位置: 首页 > news >正文

asp.net core 6.0 efcore +sqlserver增删改查的demo

asp.net core 6.0 efcore +sqlserver增删改查的demo

下面是一个使用ASP.NET Core 5.0和Entity Framework Core进行增删改查操作的示例。

首先,创建一个空的ASP.NET Core 6.0 Web应用程序项目。

然后,安装以下NuGet包:

Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
接下来,创建一个数据库上下文类,用于定义实体类和数据库连接配置。在项目中创建一个名为AppDbContext.cs的文件,并添加以下代码:

using Microsoft.EntityFrameworkCore;namespace EFCoreDemo.Models
{public class AppDbContext : DbContext{public AppDbContext(DbContextOptions<AppDbContext> options) : base(options){}public DbSet<Customer> Customers { get; set; }}
}

然后,创建一个实体类来表示数据库表。在项目中创建一个名为Customer.cs的文件,并添加以下代码:

namespace EFCoreDemo.Models
{public class Customer{public int Id { get; set; }public string Name { get; set; }public string Email { get; set; }}
}

接下来,配置数据库连接。打开appsettings.json文件,并添加以下内容:

{"ConnectionStrings": {"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=EFCoreDemo;Trusted_Connection=True;MultipleActiveResultSets=true"},"Logging": {"LogLevel": {"Default": "Information","Microsoft": "Warning","Microsoft.Hosting.Lifetime": "Information"}},"AllowedHosts": "*"
}

然后,在Startup.cs文件的ConfigureServices方法中添加以下代码,用于配置数据库上下文的依赖注入:

services.AddDbContext<AppDbContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

接下来,创建一个控制器类来处理增删改查操作。在项目中创建一个名为CustomersController.cs的文件,并添加以下代码:

using EFCoreDemo.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Threading.Tasks;namespace EFCoreDemo.Controllers
{[ApiController][Route("api/[controller]")]public class CustomersController : ControllerBase{private readonly AppDbContext _dbContext;public CustomersController(AppDbContext dbContext){_dbContext = dbContext;}[HttpGet]public async Task<ActionResult<IEnumerable<Customer>>> GetCustomers(){return await _dbContext.Customers.ToListAsync();}[HttpGet("{id}")]public async Task<ActionResult<Customer>> GetCustomer(int id){var customer = await _dbContext.Customers.FindAsync(id);if (customer == null){return NotFound();}return customer;}[HttpPost]public async Task<ActionResult<Customer>> CreateCustomer(Customer customer){_dbContext.Customers.Add(customer);await _dbContext.SaveChangesAsync();return CreatedAtAction(nameof(GetCustomer), new { id = customer.Id }, customer);}[HttpPut("{id}")]public async Task<IActionResult> UpdateCustomer(int id, Customer customer){if (id != customer.Id){return BadRequest();}_dbContext.Entry(customer).State = EntityState.Modified;try{await _dbContext.SaveChangesAsync();}catch (DbUpdateConcurrencyException){if (!_dbContext.Customers.Any(c => c.Id == id)){return NotFound();}else{throw;}}return NoContent();}[HttpDelete("{id}")]public async Task<IActionResult> DeleteCustomer(int id){var customer = await _dbContext.Customers.FindAsync(id);if (customer == null){return NotFound();}_dbContext.Customers.Remove(customer);await _dbContext.SaveChangesAsync();return NoContent();}}
}

最后,运行应用程序,并使用工具(例如Postman)测试增删改查操作。以下是一些示例请求的URL和请求体:

GET /api/customers:获取所有客户
GET /api/customers/{id}:根据ID获取客户
POST /api/customers:创建客户 请求体:
json
{
“name”: “John Doe”,
“email”: “john@example.com”
}
PUT /api/customers/{id}:更新客户 请求体:
json
{
“id”: 1,
“name”: “John Doe”,
“email”: “john.doe@example.com”
}
DELETE /api/customers/{id}:删除客户
希望这个示例能帮助你开始使用ASP.NET Core 6.0和Entity Framework Core进行增删改查操作。

相关文章:

asp.net core 6.0 efcore +sqlserver增删改查的demo

asp.net core 6.0 efcore sqlserver增删改查的demo 下面是一个使用ASP.NET Core 5.0和Entity Framework Core进行增删改查操作的示例。 首先&#xff0c;创建一个空的ASP.NET Core 6.0 Web应用程序项目。 然后&#xff0c;安装以下NuGet包&#xff1a; Microsoft.EntityFra…...

HC32L110B6芯片测试

到货之后&#xff0c;直观上感觉的确很小&#xff0c;小包装盒里面还装了说明书。 下载器单独在一个盒里面&#xff0c;但是这个T-U2T没用上&#xff0c;还是用的STLINK。 开发之前先去网上找了一些别人遇到的坑&#xff0c;的确不少。 涉及的方面也是挺全的&#xff0c;供电、…...

关于我乱删注册表导致电脑没有声音这件事

之前因为想彻底删除迅雷&#xff0c;照着网上进入注册表一顿乱删&#xff0c;也忘记删了啥&#xff0c;反正把一顿xmp的文件&#xff0c;和搜索出来迅雷的全删了。结果迅雷确实没了&#xff0c;被带走的还有电脑的声音。 很离谱&#xff0c;就试过了所有方法都没用&#xff0c…...

Linux 命令 su 和 sudo 的区别

之前一直对 su 和 sudo 这两个命令犯迷糊&#xff0c;最近专门搜了这方面的资料&#xff0c;总算是把两者的关系以及用法搞清楚了&#xff0c;这篇文章来系统总结一下。 1. 准备工作 因为本篇博客中涉及到用户切换&#xff0c;所以我需要提前准备好几个测试用户&#xff0c;方…...

微信小程序:Mobx的使用指南

简要 微信小程序中有时需要进行全局状态管理&#xff0c;这个时候就需要用到Mobx.下面我们来看一下在小程序中是如何使用Mobx的 安装 pnpm i mobx-miniprogram4.13.2 mobx-miniprogram-bindings1.2.1 或 npm i mobx-miniprogram4.13.2 mobx-miniprogram-bindings1.2.1 或 yarn…...

【Spring Boot】Spring Boot项目的创建和文件配置

目录 一、为什么要学Spring Boot 1、Spring Boot的优点 二、创建Spring Boot项目 1、创建项目之前的准备工作 2、创建Spring Boot项目 3、项目目录的介绍 4、安装Spring Boot快速添加依赖的插件 5、在项目中写一个helloworld 三、Spring Boot的配置文件 1、配置文件的…...

Spring Cloud 智慧工地源码(PC端+移动端)项目平台、监管平台、大数据平台

智慧工地源码 智慧工地云平台源码 智慧建筑源码 “智慧工地”是利用物联网、人工智能、云计算、大数据、移动互联网等新一代信息技术&#xff0c;彻底改变传统建筑施工现场参建各方现场管理的交互方式、工作方式和管理模式&#xff0c;实现对人、机、料、法、环的全方位实时监…...

通达OA SQL注入漏洞【CVE-2023-4165】

通达OA SQL注入漏洞【CVE-2023-4165】 一、产品简介二、漏洞概述三、影响范围四、复现环境POC小龙POC检测工具: 五、修复建议 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损…...

centos7 安装 docker 不能看菜鸟教程的 docker 安装,有坑

特别注意 不能看菜鸟教程的 docker 安装&#xff0c;有坑 如果机器不能直接上网&#xff0c;先配置 yum 代理 proxyhttp://172.16.0.11:8443 配置文件修改后即刻生效&#xff0c;再执行 yum install 等命令&#xff0c;就可以正常安装软件了。 参考 https://blog.csdn.net/c…...

♥ vue中$nextTick()

♥ vue中$nextTick() ① 语法 this.$nextTick(回调函数)② 作用 在下一次 DOM 更新结束后执行其指定的回调 使用时机----(比方Echarts地图的渲染) 当改变数据后&#xff0c;要基于更新后的新DOM进行某些操作时&#xff0c;要在nextTick所指定的回调函数中执行 ③ 案例: 实现…...

小程序裂变怎么做?小程序裂变机制有哪些?

做了小程序就等于“生意上门”&#xff1f;其实并不是这样。小程序跟流量平台较为明显的区别就在于小程序并非“自带流量”&#xff0c;而是需要企业利用自己的营销推广能力来建立引流渠道&#xff0c;从而完成用户的拉新和留存、转化。因此&#xff0c;想要用小程序来增加自己…...

Openlayers实战:使几何图形适配窗口

Openlayers开发的项目中,有一种应用非常重要,就是绘制或者显示出几何图形后,让几何图形居中并适配到窗口下,这样能让用户很好的聚焦到所要看的内容中去。 这里使用了fit的这个view 的方法,具体的操作请参考示例源代码。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozh…...

活动发布会邀请媒体6步走

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 邀请媒体参加活动发布会对信息的传播&#xff0c;企业品牌建设有诸多的好处&#xff0c;今天就与大家分享下邀请媒体参加活动报道的6个步骤&#xff1a; 1. 策划与准备&#xff1a; -明…...

W6100-EVB-PICO作为TCP Client 进行数据回环测试(五)

前言 上一章我们用W6100-EVB-PICO开发板通过DNS解析www.baidu.com&#xff08;百度域名&#xff09;成功得到其IP地址&#xff0c;那么本章我们将用我们的开发板作为客户端去连接服务器&#xff0c;并做数据回环测试&#xff1a;收到服务器发送的数据&#xff0c;并回传给服务器…...

emqx-5.1.4开源版使用记录

emqx-5.1.4开源版使用记录 windows系统安装eqmx 去官网下载 emqx-5.1.4-windows-amd64.zip&#xff0c;然后找个目录解压 进入bin目录,执行命令启动emqx 执行命令 emqx.cmd start使用emqx 访问内置的web管理页面 浏览器访问地址 http://localhost:18083/#/dashboard/overv…...

Java 线程池的原理与实现

最近在学习线程池、内存控制等关于提高程序运行性能方面的编程技术,线程池就是其中之一,一提到线程,我们会想到以前《操作系统》的生产者与消费者,信号量,同步控制等等。一提到池,我们会想到数据库连接池,但是线程池又如何呢?建议:在阅读本文前,先理一理同步的知识,…...

【idea】点击idea启动没反应

RT 点击idea启动的时候没反应&#xff0c;接着百度报错&#xff0c;基本跟他们的也不一样。 首先我是做版本升级。其次&#xff0c;我之前是破解的。如果你也是跟我一样的话&#xff0c;那问题可能就处在破解上了 解决方式 首先&#xff0c;是跟大部分解决思路一样。先找到项…...

C# Atrribute和反射的简单例子

Attribute 需要以Attribute 结尾, 并继承Attribute namespace AttributeTest {public class HeroAttribute : Attribute{} }namespace AttributeTest {public class SkillAttribute : Attribute{} }namespace AttributeTest {[Hero]public class Blademaster{[Skill]public vo…...

ASP.NET Core - 缓存之分布式缓存

分布式缓存是由多个应用服务器共享的缓存&#xff0c;通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性&#xff0c;尤其是当应用由云服务或服务器场托管时。 与其他将缓存数据存储在单个应用服务器上的缓存方案相比&am…...

代理模式(C++)

定义 为其他对象提供一种代理以控制(隔离&#xff0c;使用接口)对这个对象的访问。。 应用场景 在面向对象系统中&#xff0c;有些对象由于某种原因(比如对象创建的开销很大&#xff0c;或者某些操作需要安全控制&#xff0c;或者需要进程外的访问等)直接访问会给使用者、或…...

YOLO26最新创新改进系列:(粉丝反馈涨点模型TOP3)融合轻量级网络Ghostnet(幽灵卷积or幻影卷积),实测参数量降低!轻量化水文小神器!

YOLO26最新创新改进系列&#xff1a;&#xff08;粉丝反馈涨点模型TOP3&#xff09;融合轻量级网络Ghostnet(幽灵卷积or幻影卷积)&#xff0c;实测参数量降低&#xff01;轻量化水文小神器&#xff01; 购买相关资料后畅享一对一答疑&#xff01; 畅享超多免费持续更新且可大…...

FPGA赛题进阶:手把手教你实现PGL22G平台的TF卡文件系统与UDP网络传输

FPGA赛题实战&#xff1a;PGL22G平台TF卡文件系统与UDP网络传输全解析 去年带队参加集创赛时&#xff0c;有个场景让我印象深刻&#xff1a;当队伍在最后48小时终于让TF卡里的图像通过UDP稳定传输到上位机时&#xff0c;整个实验室都沸腾了。这种从存储到网络的数据流打通&…...

机器学习泛化能力解析与模型选择实践

1. 机器学习泛化能力的本质解析当第一次接触机器学习时&#xff0c;许多开发者都会困惑&#xff1a;为什么在训练集上建立的模型能够预测从未见过的数据&#xff1f;这个看似神奇的现象背后&#xff0c;是机器学习最核心的能力——泛化&#xff08;Generalization&#xff09;。…...

PyTorch GPU环境从下载到验证:避开CUDA、cuDNN版本匹配的坑(2024年最新版)

PyTorch GPU环境从下载到验证&#xff1a;避开CUDA、cuDNN版本匹配的坑&#xff08;2024年最新版&#xff09; 当你在终端输入torch.cuda.is_available()却看到False时&#xff0c;那种挫败感我深有体会。去年在部署一个图像分割项目时&#xff0c;我花了整整三天时间排查环境…...

大模型求职必看!26届春招、27届实习秋招时间线+社招新趋势全解析,先上岸再调座!

写这篇文章的初衷很简单。大模型行业这两年的变化太快了&#xff0c;快到很多同学还没搞清楚上一轮的招聘逻辑&#xff0c;下一轮就已经开始了。我想把 2026 年各个求职阶段的时间节奏理清楚&#xff0c;同时也聊一些我自己的观察和思考&#xff0c;希望对正在准备求职的你有一…...

(开源)华夏之光永存:重磅硬核|火箭回收综合性价比全面劣化:一次性+极致去冗余才是国家航天最优解(全文无废话、带参数、带对比)

重磅硬核&#xff5c;火箭回收综合性价比全面劣化&#xff1a;一次性极致去冗余才是国家航天最优解&#xff08;全文无废话、带参数、带对比&#xff09; 个人声明 我此前公开发表、撰写过多篇关于火箭回收技术的学术论文与技术分析文章&#xff0c;并非支持国家大力发展火箭回…...

Pix4Dmapper+ENVI实战:5分钟搞定多光谱图像土壤背景自动剔除(附完整流程)

Pix4Dmapper与ENVI协同实战&#xff1a;多光谱图像土壤背景高效剔除全流程解析 当无人机搭载多光谱传感器飞越农田上空时&#xff0c;那些看似普通的图像数据里&#xff0c;藏着作物长势、土壤墒情、病虫害分布的宝贵信息。但如何从包含土壤背景的原始图像中&#xff0c;精准提…...

da da wda d

da w d w...

3分钟搞定!VideoDownloadHelper浏览器插件:你的个人视频下载神器

3分钟搞定&#xff01;VideoDownloadHelper浏览器插件&#xff1a;你的个人视频下载神器 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 还在…...

Figma中文插件:让英文界面瞬间变中文,设计师的必备效率神器

Figma中文插件&#xff1a;让英文界面瞬间变中文&#xff0c;设计师的必备效率神器 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 你是否曾在Figma的英文界面中迷失方向&#xff1f;菜…...