vs2022 使用EntityFrameworkCore访问数据库的方法(DB first)

发布时间:2026/10/4 1:41:06

vs2022 使用EntityFrameworkCore访问数据库的方法(DB first) 起因使用EntityFrameworkCore访问数据库数据是微软推荐的方法。该方法有很多优点比如linq的数据库无关方法数据类与数据库表结构高度整合等优点适合于对数据库不熟悉的程序员使用。但对于老程序员来说通常是在数据库管理软件中调试优化好SQL语句直接操作数据库能获得更高的效率。下面提供一种使用EntityFrameworkCore,先设计好数据库结构再使用EntityFrameworkCore访问数据库的方法。在 Program.cs加入以下代码varbuilderWebApplication.CreateBuilder(args);strings0builder.Configuration.GetConnectionString(connectString0);// Add services to the container.builder.Services.AddControllersWithViews();builder.Services.AddDbContextPoolZwdbDBContext(oo.UseSqlServer(s0));builder.Services.AddScopedIWzbmb,ZwdbResposistory();//builder.Services.AddScopedIWzbmb, WzbmbReposistory();varappbuilder.Build();在Models中加入Iwzbm.csusingSystem.Data;namespaceWebMvc4.Models{publicinterfaceIWzbmb{publicstringGetWzbmb(ulongwzbm);publicListKmGetKms(stringcommandString);publicDataViewGetDataView(stringcommandString);publicDataViewGetDV(stringcommandString);publicstringgetKmmc(stringkmbm);}}加入数据仓库zwdbResposistory.csnamespaceWebMvc4.Models{publicclassZwdbResposistory:IWzbmb{privatereadonlyZwdbDBContext_dbContext;publicZwdbResposistory(ZwdbDBContextdbContext){_dbContextdbContext;}publicDataViewGetDataView(stringcommandString){DataViewdvnew();returndv;//_dbContext.kms.FromSql($select kmdm,kmmc from km where kmdm2001;);}publicDataViewGetDV(stringcommandString){thrownewNotImplementedException();}publicListKmGetKms(stringcmd){return_dbContext.kms.FromSql($select kmdm,kmmc from km where kmdm2001;).ToList();}publicstringGetWzbmb(ulongwzbm){thrownewNotImplementedException();}publicstringgetKmmc(stringkmdm){ListKmlistkmnewListKm();listkm_dbContext.kms.Where(oo.Kmdmkmdm).ToList();returnlistkm[0].Kmmc;}}}加入数据库上下文ZwdbConText.csusingMicrosoft.EntityFrameworkCore;namespaceWebMvc4.Models{publicclassZwdbDBContext:DbContext{publicZwdbDBContext(DbContextOptionsZwdbDBContextoptions):base(options){}publicDbSetKmkms{get;set;}protectedoverridevoidOnModelCreating(ModelBuildermodelBuilder){modelBuilder.EntityKm().ToTable(km);}}}publicclassKm{privatestringkmdm;privatestringkmmc;publicstringKmdm{getkmdm;setkmdmvalue;}publicstringKmmc{getkmmc;setkmmcvalue;}publicKm(){}}这样既能使用原有的数据库知识优化查询同时也能使用VS2022提供的完备的API,简化程序设计一举两得。当然也可以使用命令行Scaffold-DbContext “Server.;Database你的库名;Trusted_ConnectionTrue;TrustServerCertificateTrue;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context MyDbContext -Force来生成modeldotnet ef dbcontext scaffold “Server.;Database你的库名;Trusted_ConnectionTrue;TrustServerCertificateTrue;” Microsoft.EntityFrameworkCore.SqlServer -o Models --context MyDbContext --force.(在操作系统环境
延伸阅读

更多相关文章

2026/10/4 1:36:06

安卓端五子棋AI陪练的底层技术架构解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:36:06

条纹结构光三维重建原理与工业落地关键

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 2:31:09

Java医院急诊系统源码实战:业务表设计、并发与审计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 2:31:09

Java Web宿舍管理系统:Servlet+JSP+JDBC实战指南

简介:这是一套面向高校计算机专业本科生的Java Web毕业设计实战项目,聚焦学生宿舍管理核心业务场景,适用于课程设计、毕设开发与Web全栈入门实践。资源包含完整可运行的系统源码与MySQL数据库脚本,采用B/S架构,划分为学…

2026/10/4 2:31:09

Systemd实战指南:Unit编写、日常管理与日志排查

刚开始接触 Linux 的时候,我用的是 CentOS 6,开机关机全靠一长串/etc/rc.d/init.d/下的脚本,那时候 systemd 还算个新鲜词。后来切到 CentOS 7,第一次开机看到满屏并行滚动的绿色 [OK],systemd 算是正式成为了我 Linux…

2026/10/4 2:26:09

基于PIC32与MRAM的工业外部存储方案:掉电保存与SPI驱动详解

有一类存储需求,在工业现场特别扎心:数据要频繁写入、掉电不能丢、还要扛得住温度波动。我最近在设备上就用 Everspin 的 MR25H40CDF MRAM 芯片,配合 Microchip 的 PIC32MX675F256L 单片机组了一套外部存储方案,专门用来保存运行参…

2026/10/4 0:01:02

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/4 0:01:02

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/4 1:01:05

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 0:01:02

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/4 0:01:02

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/4 1:01:05

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑