溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET Core的WebApi和EF Core該怎么樣入門

發布時間:2021-09-18 16:01:11 來源:億速云 閱讀:259 作者:柒染 欄目:編程語言
# 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

  • 測試GET/POST/PUT/DELETE端點
  • 檢查響應狀態碼

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高級特性 - 實踐身份認證與授權 “`

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女