ASP.NET Core 入门教程三 结合 EFCore 和 SQLite

ASP.NET Core 是一个开源的 Web 框架,它允许开发者轻松地构建现代、高性能的 Web 应用程序。Entity Framework Core (EFCore) 是一个轻量级、可扩展的 ORM(对象关系映射)框架,它支持多种数据库。SQLite 是一个轻量级的嵌入式数据库,适用于小型应用程序。在本篇文章中,我们将学习如何在 ASP.NET Core 项目中结合 EFCore 和 SQLite。

1. 创建一个新的 ASP.NET Core Web API 项目

首先,我们需要创建一个新的 ASP.NET Core Web API 项目。在 Visual Studio 中,选择 "创建新项目",然后选择 "ASP.NET Core Web 应用程序"。在 "选择模板" 对话框中,选择 ".NET Core" 和 "API" 模板。为项目命名并单击 "创建"。

2. 安装 EFCore 和 SQLite 相关包

在项目中,我们需要安装 EFCore 和 SQLite 相关的 NuGet 包。右键单击项目名称,选择 "管理 NuGet 程序包",然后搜索并安装以下包:

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Tools

3. 创建实体类和数据库上下文

接下来,我们需要创建一个实体类和一个继承自 DbContext 的数据库上下文类。

 
  
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

public class AppDbContext : DbContext
{
    public DbSet Products { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Filename=./products.db");
    }
}

在上面的代码中,我们创建了一个 Product 实体类和一个 AppDbContext 数据库上下文类。DbSet 表示 Product 实体将在数据库中映射为一个表。OnConfiguring 方法用于配置数据库连接字符串。

4. 迁移数据库

在 EFCore 中,我们可以使用迁移来创建和更新数据库结构。首先,我们需要创建一个迁移。在 Visual Studio 的 "包管理器控制台" 中,输入以下命令:

 
  
Add-Migration InitialCreate

这将创建一个名为 "InitialCreate" 的迁移。接下来,我们需要应用这个迁移来创建数据库:

 
  
Update-Database

现在,数据库和 Products 表已经创建好了。

5. 实现 CRUD 操作

最后,我们将在控制器中实现基本的 CRUD 操作。

 
  

using Microsoft.AspNetCore.Mvc;
using System.Linq;

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

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

        [HttpGet]
        public IActionResult GetProducts()
        {
            return _context.Products.ToList();
        }

        [HttpGet("{id}")]
        public IActionResult GetProduct(int id)
        {
            var product = _context.Products.Find(id);
            if (product == null)
            {
                return NotFound();
            }
            return product;
        }

        [HttpPost]
        public IActionResult CreateProduct([FromBody] Product product)
        {
            _context.Products.Add(product);
            _context.SaveChanges();
            return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product);
        }

        [HttpPut("{id}")]
        public IActionResult UpdateProduct(int id, [FromBody] Product productDetails)
        {
            var product = _context.Products.Find(id);
            if (product == null)
            {
                return NotFound();
.

你可能感兴趣的:(asp.net,sqlite,后端)