.net core webapi+EF Core
.net core webapi+EF Core
一.描述:
EF Core必须下载.net core2.0版本
Micorsoft.EntityFrameworkCore:EF框架的核心包
Micorsoft.EntityFrameworkCore.SqlServer:针对SqlServer数据库的扩展,使用SqlServer数据库必须。类似的还有MySql,SqlLite等
Micorsoft.EntityFrameworkCore.Tools
Micorosft.EntityFrameworkCore.Design:用户根据现有的数据库生成模型代码
Microsoft.EntityFrameworkCore.SqlServer.Design
二.EF安装:
通过nuget方式:
1.EF核心库安装:
Install-package Microsoft.EntityFrameworkCore
Install-package Microsoft.EntityFrameworkCore.SqlServer
2.dbfirst需要的库:
Install-package Microsoft.EntityFrameworkCore.Design Install-package Microsoft.EntityFrameworkCore.Tools Install-package Microsoft.EntityFrameworkCore.SqlServer.Design
三.使用dbfirst方式生成实体及上下文对象:
Scaffold-DbContext "Server=.;database=CommonPermission;User ID=sa;Password=123;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
四.配置:
通过上面的生成方式数据库配置直接在代码中,这种做法是不好的,应该移动到配置文件中:
上下文类屏蔽数据库连接:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { #warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings. //optionsBuilder.UseSqlServer("Server=.;database=CommonPermission;User ID=sa;Password=123;"); } }
在appsettings.json文件中配置:
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "SQLConnection": "Server=.;database=CommonPermission;User ID=sa;Password=123;" }, "AllowedHosts": "*" }
在Startup.cs文件中的ConfigureServices方法中注入上下文对象:
//注入上下文对象 services.AddDbContext<CommonPermissionContext>(x => x.UseSqlServer(Configuration.GetConnectionString("SQLConnection")));
接下来的和net framework中的ef方式一致!
为了明天能幸福,今天付出再多也不后悔。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2014-04-18 javascript ajax的语法