当前位置: 首页 > 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;或者需要进程外的访问等)直接访问会给使用者、或…...

3分钟搞定!让Windows资源管理器秒显iPhone照片缩略图的终极方案

3分钟搞定&#xff01;让Windows资源管理器秒显iPhone照片缩略图的终极方案 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 还在…...

如何用AI大模型技术一键批量生成和发布短视频?MoneyPrinterPlus全攻略

如何用AI大模型技术一键批量生成和发布短视频&#xff1f;MoneyPrinterPlus全攻略 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhispe…...

(84页PPT)公司整套管理流程图(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 &#xff08;84页PPT&#xff09;公司整套管理流程图.pptx_PPT大模型实践案例资源-CSDN下载 资料解读&#xff1a;《公司整套管理流程图》 详细资料请看本解读文章的最后内容。 作为一套系统性…...

从“统计字符数”到“词频分析”:一个散列思想,搞定Python/Java/C++多语言实战

从“统计字符数”到“词频分析”&#xff1a;散列思想的多语言实战指南 在编程竞赛和实际开发中&#xff0c;频率统计是一个高频出现的经典问题。无论是统计文本中字符出现的次数&#xff0c;分析用户行为日志中的事件频率&#xff0c;还是计算电商平台上商品的购买热度&#x…...

制造业AI化改造路径与JBoltAI SOP赋能实践

一、政策引领&#xff1a;制造业AI化改造已成必然趋势当前&#xff0c;我国制造业正从“量的积累”向“质的飞跃”转型&#xff0c;国家密集出台《中国制造2025》《“人工智能制造”专项行动实施意见》等政策&#xff0c;明确推动“人工智能制造”深度融合&#xff0c;为制造业…...

别再手动拖拽了!Matlab画图时用xlim函数精准控制X轴范围的3个实战技巧

别再手动拖拽了&#xff01;Matlab画图时用xlim函数精准控制X轴范围的3个实战技巧 每次用Matlab画完图&#xff0c;你是不是也习惯性地用鼠标拖拽坐标轴来调整显示范围&#xff1f;这种操作不仅效率低下&#xff0c;还难以保证多张图表的一致性。今天我们就来彻底解决这个问题—…...

从‘炼丹’到‘工程’:复盘InceptionV3论文中那些被验证与‘打脸’的设计(附代码对比)

从‘炼丹’到‘工程’&#xff1a;InceptionV3设计思想的现代验证与技术启示 当我们在2023年回望2015年问世的InceptionV3架构&#xff0c;会发现它像一座横跨深度学习"炼丹时代"与"工程时代"的桥梁。这篇论文最珍贵的遗产不是某个具体模块&#xff0c;而是…...

别再只用ssh-keygen了!聊聊OpenSSH密钥算法:ed25519 vs RSA,我该选哪个?

SSH密钥算法深度解析&#xff1a;ed25519与RSA的技术抉择 当你面对ssh-keygen命令中琳琅满目的算法选项时&#xff0c;是否曾陷入选择困难&#xff1f;在安全与效率的天平上&#xff0c;ed25519和RSA究竟谁更胜一筹&#xff1f;本文将带你穿透技术迷雾&#xff0c;从密码学原理…...

数字阅读革命:fanqienovel-downloader如何重塑你的小说收藏体验

数字阅读革命&#xff1a;fanqienovel-downloader如何重塑你的小说收藏体验 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在信息爆炸的时代&#xff0c;我们每天消费着海量的数字内容&am…...

别再傻傻分不清了!华为交换机上三种ARP代理的实战配置与场景选择指南

华为交换机三种ARP代理的深度解析与实战指南 在复杂的网络环境中&#xff0c;ARP代理技术常常成为网络工程师的"隐形助手"。它像一位熟练的翻译官&#xff0c;在不同网络边界间架起沟通的桥梁。今天&#xff0c;我们就来揭开华为交换机上三种ARP代理技术的神秘面纱&…...