资讯动态

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

发布时间:2026/10/4 1:41:11 来源:尧图企业网站定制
起因使用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.(在操作系统环境

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑