您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# ASP.NET Core的WebApi和EF Core该怎么样入门
## 前言
ASP.NET Core是微软推出的跨平台Web开发框架,结合Entity Framework Core(EF Core)可以快速构建数据驱动的Web API。本文将带你从零开始掌握这两个技术的核心用法。
## 一、环境准备
### 1. 安装开发工具
- [Visual Studio 2022](https://visualstudio.microsoft.com/)(社区版免费)
- 或 [VS Code](https://code.visualstudio.com/) + .NET SDK
- 推荐安装".NET Core跨平台开发"工作负载
### 2. 验证环境
```bash
dotnet --version
# 应显示6.0或更高版本
dotnet new webapi -n MyFirstApi
cd MyFirstApi
Controllers/ # API控制器
appsettings.json # 配置文件
Program.cs # 主入口文件
dotnet run
访问 https://localhost:5001/weatherforecast
应返回JSON数据
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Design
// Models/Product.cs
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
// Data/AppDbContext.cs
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options)
: base(options) { }
public DbSet<Product> Products { get; set; }
}
// appsettings.json
"ConnectionStrings": {
"Default": "Server=(localdb)\\mssqllocaldb;Database=MyApiDb;Trusted_Connection=True;"
}
// Program.cs
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("Default")));
dotnet ef migrations add InitialCreate
dotnet ef database update
// Controllers/ProductsController.cs
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
private readonly AppDbContext _context;
public ProductsController(AppDbContext context)
{
_context = context;
}
}
[HttpGet]
public async Task<ActionResult<IEnumerable<Product>>> GetProducts()
{
return await _context.Products.ToListAsync();
}
[HttpPost]
public async Task<ActionResult<Product>> PostProduct(Product product)
{
_context.Products.Add(product);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product);
}
public class ProductDto
{
public string Name { get; set; }
public decimal Price { get; set; }
}
dotnet add package Swashbuckle.AspNetCore
// Program.cs
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowAll", builder =>
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader());
});
// 在控制器中注入ILogger
private readonly ILogger<ProductsController> _logger;
// 记录日志
_logger.LogInformation("Getting all products");
dotnet publish -c Release -o ./publish
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY ./publish .
ENTRYPOINT ["dotnet", "MyFirstApi.dll"]
通过本文,你已经掌握了: 1. 创建ASP.NET Core WebApi项目 2. 配置EF Core进行数据访问 3. 实现基本的CRUD操作 4. 一些生产环境实用技巧
建议下一步: - 学习ASP.NET Core中间件 - 探索EF Core高级特性 - 实践身份认证与授权 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。