1.创建web api项目

选择第一个ASP.NET Core Web API

2.配置连接串

在appsetting.json中配置如下的MySql数据库连接chuan

{

  "ConnectionStrings": {
    "DefaultConnection": "server=testserver;database=testcd;user=root;password=pwd"
  },
  
  

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

3.注册数据库连接

在启动类programe.cs中注册数据库连接的代码

builder.Services.AddDbContext<MyDbContext>(options =>
    options.UseMySql(builder.Configuration.GetConnectionString("DefaultConnection"),   ServerVersion.AutoDetect(builder.Configuration.GetConnectionString("DefaultConnection"))));

4.在数据库中建好对于的数据库表

1.建数据实体类对应数据库中的字段

using Newtonsoft.Json;

namespace WebApplication3
{
    public class MyEntity
    {
        public int Id { get; set; }

        [JsonProperty("Name")] // 确保属性名称与返回的JSON中的名称匹配
        public string Name { get; set; }
        // 添加其他属性
    }
}
 

2.使用DBContext接口

using Microsoft.EntityFrameworkCore;
using WebApplication3;

public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { }

    public DbSet<MyEntity> MyEntities { get; set; }

    //public DbSet<MyEntity> CdInfor { get; set; }
}
 

5.建控制器实现增删改查

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WebApplication3;

[ApiController]
[Route("[controller]")]
public class MyEntitiesController : ControllerBase
{
    //依赖注入的方式
    private readonly MyDbContext _context;

    public MyEntitiesController(MyDbContext context)
    {
        _context = context;
    }

    // GET: /MyEntities
    [HttpGet]
    public async Task<ActionResult<IEnumerable<MyEntity>>> GetMyEntities()
    {
        var name = await _context.MyEntities.ToListAsync();
        return Ok(name);
    }

    // GET: /MyEntities/5
    [HttpGet("{id}")]
    public async Task<ActionResult<MyEntity>> GetMyEntity(int id)
    {
        var myEntity = await _context.MyEntities.FindAsync(id);

        if (myEntity == null)
        {
            return NotFound();
        }

        return myEntity;
    }

    // POST: /MyEntities
    [HttpPost]
    public async Task<ActionResult<MyEntity>> PostMyEntity(MyEntity myEntity)
    {
        _context.MyEntities.Add(myEntity);
        await _context.SaveChangesAsync();

        return CreatedAtAction(nameof(GetMyEntity), new { id = myEntity.Id }, myEntity);
    }

    // PUT: /MyEntities/5
    [HttpPut("{id}")]
    public async Task<IActionResult> PutMyEntity(int id, MyEntity myEntity)
    {
        if (id != myEntity.Id)
        {
            return BadRequest();
        }

        _context.Entry(myEntity).State = EntityState.Modified;

        try
        {
            await _context.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!_context.MyEntities.Any(e => e.Id == id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return NoContent();
    }

    // DELETE: /MyEntities/5
    [HttpDelete("{id}")]
    public async Task<IActionResult> DeleteMyEntity(int id)
    {
        var myEntity = await _context.MyEntities.FindAsync(id);
        if (myEntity == null)
        {
            return NotFound();
        }

        _context.MyEntities.Remove(myEntity);
        await _context.SaveChangesAsync();

        return NoContent();
    }
}

6,简单的实战案例

1,创建数据库建表

-- 创建用户表
CREATE TABLE Users (
    UserID INT AUTO_INCREMENT PRIMARY KEY,
    Username VARCHAR(255) NOT NULL,
    PasswordHash VARBINARY(255) NOT NULL,
    Email VARCHAR(255) NOT NULL,
    PhoneNumber VARCHAR(20),
    CreateDate DATETIME NOT NULL,
    LastLoginDate DATETIME,
    Status TINYINT NOT NULL DEFAULT 0
);

-- 创建商品分类表
CREATE TABLE Categories (
    CategoryID INT AUTO_INCREMENT PRIMARY KEY,
    CategoryName VARCHAR(255) NOT NULL,
    ParentCategoryID INT,
    FOREIGN KEY (ParentCategoryID) REFERENCES Categories(CategoryID)
);

-- 创建商品表
CREATE TABLE Products (
    ProductID INT AUTO_INCREMENT PRIMARY KEY,
    CategoryID INT,
    ProductName VARCHAR(255) NOT NULL,
    Description TEXT,
    Price DECIMAL(10, 2) NOT NULL,
    StockQuantity INT NOT NULL,
    Status TINYINT NOT NULL DEFAULT 1,
    FOREIGN KEY (CategoryID) REFERENCES Categories(CategoryID)
);

-- 创建商品图片表
CREATE TABLE ProductImages (
    ImageID INT AUTO_INCREMENT PRIMARY KEY,
    ProductID INT,
    ImageURL VARCHAR(255) NOT NULL,
    IsPrimary TINYINT NOT NULL DEFAULT 0,
    FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);

-- 创建订单表
CREATE TABLE Orders (
    OrderID INT AUTO_INCREMENT PRIMARY KEY,
    UserID INT,
    OrderDate DATETIME NOT NULL,
    TotalAmount DECIMAL(10, 2) NOT NULL,
    Status VARCHAR(50) NOT NULL,
    FOREIGN KEY (UserID) REFERENCES Users(UserID)
);

-- 创建订单详情表
CREATE TABLE OrderDetails (
    OrderDetailID INT AUTO_INCREMENT PRIMARY KEY,
    OrderID INT,
    ProductID INT,
    Quantity INT NOT NULL,
    UnitPrice DECIMAL(10, 2) NOT NULL,
    FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
    FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);

-- 创建支付记录表
CREATE TABLE PaymentRecords (
    PaymentID INT AUTO_INCREMENT PRIMARY KEY,
    OrderID INT,
    UserID INT,
    Amount DECIMAL(10, 2) NOT NULL,
    PaymentDate DATETIME NOT NULL,
    PaymentMethod VARCHAR(50) NOT NULL,
    Status VARCHAR(50) NOT NULL,
    FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
    FOREIGN KEY (UserID) REFERENCES Users(UserID)
);

-- 创建收货地址表
CREATE TABLE ShippingAddresses (
    AddressID INT AUTO_INCREMENT PRIMARY KEY,
    UserID INT,
    RecipientName VARCHAR(255) NOT NULL,
    PhoneNumber VARCHAR(20),
    AddressLine1 VARCHAR(255) NOT NULL,
    AddressLine2 VARCHAR(255),
    City VARCHAR(100) NOT NULL,
    State VARCHAR(100),
    PostalCode VARCHAR(20) NOT NULL,
    Country VARCHAR(100) NOT NULL,
    FOREIGN KEY (UserID) REFERENCES Users(UserID)
);

-- 创建优惠券表
CREATE TABLE Coupons (
    CouponID INT AUTO_INCREMENT PRIMARY KEY,
    CouponCode VARCHAR(50) NOT NULL,
    DiscountAmount DECIMAL(10, 2),
    DiscountPercentage DECIMAL(5, 2),
    ExpiryDate DATETIME NOT NULL,
    Status TINYINT NOT NULL DEFAULT 1
);

-- 创建用户优惠券表
CREATE TABLE UserCoupons (
    UserCouponID INT AUTO_INCREMENT PRIMARY KEY,
    UserID INT,
    CouponID INT,
    IsUsed TINYINT NOT NULL DEFAULT 0,
    UseDate DATETIME,
    FOREIGN KEY (UserID) REFERENCES Users(UserID),
    FOREIGN KEY (CouponID) REFERENCES Coupons(CouponID)
);
 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐