
HTTP API vs WebSocket API:选择哪个来实现实时通信?
在现代软件开发中,数据库表与代码之间的“格式不匹配”常常让开发者头疼。Excel 表格虽然直观,但无法直接在代码中操作;原始数据库表也并非开发者友好的结构。
为此,ORM(对象关系映射)应运而生。Entity Framework Core(EF Core) 作为 .NET 平台上成熟的 ORM 框架,能够将数据库表映射成 C# 对象,简化数据访问与操作。本文将以 .NET 8 为示例,带你从零搭建 EF Core 与 SQL Server 的基础配置,并执行首次迁移,帮助你快速入门 EF Core。
.NET 8 项目
dotnet new webapi -n MyEfCoreApp
创建一个 Web API 项目。VS Code 与 NuGet Gallery 插件
Ctrl+Shift+X
搜索 “NuGet Gallery”,点击安装。Ctrl+Shift+P
,输入 NuGet: Add Package
便可快速安装所需包。所需 NuGet 包
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
dotnet add package Microsoft.EntityFrameworkCore.Design
> 提示: 如果使用 .NET 7,将 SqlServer
包版本对齐为 EF Core 7.x。
ApplicationDbContext
在项目根目录下:
新建文件夹 Data
。
在 Data
中新增 ApplicationDbContext.cs
,内容如下:
using Microsoft.EntityFrameworkCore;
namespace MyEfCoreApp.Data
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions < ApplicationDbContext > options)
: base(options)
{
}
// 在此声明要映射的表
public DbSet < Stock > Stocks { get; set; }
public DbSet < Comment > Comments { get; set; }
}
}
同目录下定义实体类 Stock
与 Comment
,例如:
public class Stock
{
public int Id { get; set; }
public string Symbol { get; set; }
public decimal Price { get; set; }
}
public class Comment
{
public int Id { get; set; }
public int StockId { get; set; }
public string Content { get; set; }
}
Program.cs
中注册 DbContext打开 Program.cs
,在调用 builder.Build()
之前,添加以下代码以注册 EF Core DbContext:
using MyEfCoreApp.Data;
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
// 从 appsettings.json 读取名为 "DefaultConnection" 的连接字符串
builder.Services.AddDbContext < ApplicationDbContext > (options = >
options.UseSqlServer(
builder.Configuration.GetConnectionString("DefaultConnection")
)
);
var app = builder.Build();
// … 其他中间件或路由配置
app.Run();
> 注意: 一定要保证 AddDbContext
调用在 builder.Build()
之前,否则无法正确注入。
在 SQL Server Management Studio(SSMS)中新建数据库
FinShark
(或自定义名称)。在 appsettings.json
中添加连接字符串
{
"ConnectionStrings": {
"DefaultConnection": "Server=YOUR_DESKTOP_NAME;Database=FinShark;Trusted_Connection=True;TrustServerCertificate=True;Encrypt=False;"
},
// … 其他配置
}
Server
:你的本地服务器实例名称(在 SSMS 中可见)。Database
:与你在 SSMS 中新建的数据库名一致。Trusted_Connection=True
与 Encrypt=False
保证本地开发时连接顺畅。EF Core 迁移(Migrations)用于生成建库脚本并更新数据库结构。
添加首次迁移
dotnet ef migrations add Init
Migrations
文件夹,包含用于构建数据库的 C# 脚本。更新数据库
dotnet ef database update
验证结果
Stocks
、Comments
以及 __EFMigrationsHistory
表。至此,你已完成以下工作:
ApplicationDbContext
,声明 DbSet < T >
Program.cs
中注册 DbContext,绑定连接字符串appsettings.json
中配置 ConnectionStrings
dotnet ef migrations add
与 dotnet ef database update
完成首次 EF Core 迁移接下来,你可以基于此基础实现对 Stocks
和 Comments
的增删改查操作,并深入了解 Deferred Execution、Fluent API 或 Data Seeding 等高级功能,为你的 API 增强更多业务逻辑和性能优化。
SEO 关键词回顾:
希望本文能帮助你快速上手 EF Core 与 SQL Server 集成!
原文引自YouTube视频:https://www.youtube.com/watch?v=SIQhe-yt3mA