ASP.NET Core的WebApi和EF Core该怎么样入门

发布时间:2021-09-18 16:01:11 作者:柒染
来源:亿速云 阅读:246
# 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或更高版本

二、创建WebApi项目

1. 新建项目

dotnet new webapi -n MyFirstApi
cd MyFirstApi

2. 项目结构说明

Controllers/    # API控制器
appsettings.json # 配置文件
Program.cs      # 主入口文件

3. 运行测试

dotnet run

访问 https://localhost:5001/weatherforecast 应返回JSON数据

三、EF Core基础

1. 安装EF Core

dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Design

2. 创建数据模型

// Models/Product.cs
public class Product 
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

3. 创建DbContext

// Data/AppDbContext.cs
public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options)
        : base(options) { }
        
    public DbSet<Product> Products { get; set; }
}

四、数据库配置

1. 配置连接字符串

// appsettings.json
"ConnectionStrings": {
  "Default": "Server=(localdb)\\mssqllocaldb;Database=MyApiDb;Trusted_Connection=True;"
}

2. 注册DbContext

// Program.cs
builder.Services.AddDbContext<AppDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("Default")));

3. 数据库迁移

dotnet ef migrations add InitialCreate
dotnet ef database update

五、实现CRUD API

1. 创建控制器

// Controllers/ProductsController.cs
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
    private readonly AppDbContext _context;

    public ProductsController(AppDbContext context)
    {
        _context = context;
    }
}

2. 实现GET方法

[HttpGet]
public async Task<ActionResult<IEnumerable<Product>>> GetProducts()
{
    return await _context.Products.ToListAsync();
}

3. 实现POST方法

[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);
}

六、进阶技巧

1. 使用DTO模式

public class ProductDto
{
    public string Name { get; set; }
    public decimal Price { get; set; }
}

2. 添加Swagger支持

dotnet add package Swashbuckle.AspNetCore
// Program.cs
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

3. 启用跨域(CORS)

builder.Services.AddCors(options => 
{
    options.AddPolicy("AllowAll", builder => 
        builder.AllowAnyOrigin()
               .AllowAnyMethod()
               .AllowAnyHeader());
});

七、调试与测试

1. 使用Postman测试API

2. 日志记录

// 在控制器中注入ILogger
private readonly ILogger<ProductsController> _logger;

// 记录日志
_logger.LogInformation("Getting all products");

八、部署准备

1. 发布配置

dotnet publish -c Release -o ./publish

2. Docker支持

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高级特性 - 实践身份认证与授权 “`

推荐阅读:
  1. ASP.NET Core WebApi基于Redis实现Token接口安全认证
  2. ASP.NET Core WebApi基于JWT实现接口授权验证

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

asp.net core webapi ef core

上一篇:Linux用户和用户组的概念及管理概述

下一篇:JS数组的基本用法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》