asp.net coremvc+efcore增删改查

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

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

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

xml 复制代码
<ItemGroup>
  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.10" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.10">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
  </PackageReference>
</ItemGroup>

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

  1. 创建一个名为 TodoItem 的实体类,定义在你的应用程序中需要存储的数据。
csharp 复制代码
public class TodoItem
{
    public int Id { get; set; }
    public string Title { get; set; }
    public bool IsCompleted { get; set; }
}
  1. 创建一个继承自 DbContext 的类 AppDbContext,并在其中定义实体集。
csharp 复制代码
public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options)
        : base(options)
    {
    }

    public DbSet<TodoItem> TodoItems { get; set; }
}
  1. Startup.csConfigureServices 方法中添加数据库上下文的配置。
csharp 复制代码
public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<AppDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

    // ...
}

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

  1. 创建一个简单的控制器 TodoItemsController,并添加以下操作方法。
csharp 复制代码
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. 创建对应的视图文件。在 Views/TodoItems 目录下创建 Index.cshtmlCreate.cshtmlEdit.cshtmlDelete.cshtml

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

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

相关推荐
小突突突1 小时前
模拟实现Java中的计时器
java·开发语言·后端·java-ee
web137656076431 小时前
Scala的宝藏库:探索常用的第三方库及其应用
开发语言·后端·scala
闲猫2 小时前
go 反射 interface{} 判断类型 获取值 设置值 指针才可以设置值
开发语言·后端·golang·反射
mabanbang2 小时前
2025asp.net全栈技术开发学习路线图
asp.net·全栈技术
LUCIAZZZ2 小时前
EasyExcel快速入门
java·数据库·后端·mysql·spring·spring cloud·easyexcel
Asthenia04123 小时前
依托IOC容器提供的Bean生命周期,我们能在Bean中做些什么?又能测些什么?
后端
Ase5gqe3 小时前
Spring中的IOC详解
java·后端·spring
小万编程3 小时前
基于SpringBoot+Vue奖学金评比系统(高质量源码,可定制,提供文档,免费部署到本地)
java·spring boot·后端·毕业设计·计算机毕业设计·项目源码
南雨北斗3 小时前
ThinkPHP6控制器方法返回的 Content-Type类型
后端
CryptoRzz4 小时前
springboot接入方式对接股票数据源API接口
后端