• asp.net coremvc+efcore增删改查


    下面是一个使用 EF Core 在 ASP.NET Core MVC 中完成增删改查的示例:

    1. 创建一个新的 ASP.NET Core MVC 项目。

    2. 安装 EF Core 相关的 NuGet 包。在项目文件 (.csproj) 中添加以下依赖项:

    <ItemGroup>
      <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.10" />
      <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.10">
        <PrivateAssets>allPrivateAssets>
        <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitiveIncludeAssets>
      PackageReference>
    ItemGroup>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    确保将 Version 指定为你当前使用的 EF Core 版本。

    1. 创建一个名为 TodoItem 的实体类,定义在你的应用程序中需要存储的数据。
    public class TodoItem
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public bool IsCompleted { get; set; }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 创建一个继承自 DbContext 的类 AppDbContext,并在其中定义实体集。
    public class AppDbContext : DbContext
    {
        public AppDbContext(DbContextOptions<AppDbContext> options)
            : base(options)
        {
        }
    
        public DbSet<TodoItem> TodoItems { get; set; }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. Startup.csConfigureServices 方法中添加数据库上下文的配置。
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<AppDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    
        // ...
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    确保在 appsettings.json 文件中添加名为 DefaultConnection数据库连接字符串。

    1. 创建一个简单的控制器 TodoItemsController,并添加以下操作方法。
    public class TodoItemsController : Controller
    {
        private readonly AppDbContext _dbContext;
    
        public TodoItemsController(AppDbContext dbContext)
        {
            _dbContext = dbContext;
        }
    
        public IActionResult Index()
        {
            var todoItems = _dbContext.TodoItems.ToList();
            return View(todoItems);
        }
    
        public IActionResult Create()
        {
            return View();
        }
    
        [HttpPost]
        public IActionResult Create(TodoItem todoItem)
        {
            if (ModelState.IsValid)
            {
                _dbContext.TodoItems.Add(todoItem);
                _dbContext.SaveChanges();
                return RedirectToAction(nameof(Index));
            }
            return View(todoItem);
        }
    
        public IActionResult Edit(int id)
        {
            var todoItem = _dbContext.TodoItems.Find(id);
            if (todoItem == null)
            {
                return NotFound();
            }
            return View(todoItem);
        }
    
        [HttpPost]
        public IActionResult Edit(int id, TodoItem todoItem)
        {
            if (id != todoItem.Id)
            {
                return NotFound();
            }
    
            if (ModelState.IsValid)
            {
                _dbContext.Update(todoItem);
                _dbContext.SaveChanges();
                return RedirectToAction(nameof(Index));
            }
            return View(todoItem);
        }
    
        public IActionResult Delete(int id)
        {
            var todoItem = _dbContext.TodoItems.Find(id);
            if (todoItem == null)
            {
                return NotFound();
            }
            return View(todoItem);
        }
    
        [HttpPost, ActionName("Delete")]
        public IActionResult DeleteConfirmed(int id)
        {
            var todoItem = _dbContext.TodoItems.Find(id);
            if (todoItem == null)
            {
                return NotFound();
            }
            _dbContext.TodoItems.Remove(todoItem);
            _dbContext.SaveChanges();
            return RedirectToAction(nameof(Index));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    1. 创建对应的视图文件。在 Views/TodoItems 目录下创建 Index.cshtmlCreate.cshtmlEdit.cshtmlDelete.cshtml

    2. 运行应用程序,并访问 https://localhost:{port}/TodoItems,将能够执行增删改查操作。

    这是一个简单的使用 EF Core 完成增删改查的示例,你可以根据实际需求进行适当的调整和扩展。

  • 相关阅读:
    FFmpeg4.3.1+h264在windows下编译与VS2017项目集成
    为什么插入排序比冒泡排序更受欢迎?
    Debian系列-系统安装及Qt基础开发环境配置
    2022年全国部分省市跨境电商交易规模汇总
    【Recurrent Neural Network(RNN)】循环神经网络——李宏毅机器学习阅读笔记
    【黑夜送书第一期】好书来袭,AI时代程序员/项目经理开发之道送3本~
    用Python进行数学建模(一)
    软件测试人员的7个等级,据说只有1%的人能做到级别7
    【QT】续写文本存储到文件
    经典设计原则 - SOLID
  • 原文地址:https://blog.csdn.net/qq_41942413/article/details/133495709