c# - Asp.Net Core 3.1 检索数据但未将其保存到数据库中

标签 c# sql-server asp.net-core

我正在创建一个 Asp.Net core Web 应用程序。我已成功将数据库连接到我的应用程序。我可以成功运行所有迁移,甚至可以从数据库中检索数据。但是,当我尝试使用 DbContext 保存数据时,数据未保存在数据库中。这是我的代码

类别模型类

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }
}

类别 Controller

public class CategoryController : Controller
{
    private readonly AppDbContext dbContext;

    public CategoryController(AppDbContext dbContext)
    {
        this.dbContext = dbContext;
    }

    [HttpGet]
    public IActionResult Index()
    {
        var categories = dbContext.Categories.ToList();
        return View(categories);
    }

    [HttpGet]
    public IActionResult Create()
    {
        return View();
    }

    [HttpPost]
    public IActionResult Create(Category category)
    {
        if (ModelState.IsValid)
        {
            dbContext.Categories.Add(category);
            return RedirectToAction(nameof(Index));
        }
        return View();
    }
}

查看

<form asp-action="Create">
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="Name" class="control-label"></label>
            <input asp-for="Name" class="form-control" />
            <span asp-validation-for="Name" class="text-danger"></span>
        </div>
        <div class="form-group">
            <input type="submit" value="Create" class="btn btn-primary" />
        </div>
 </form>

DbContext 类

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

    }

    public DbSet<Category> Categories { get; set; }
}

最后是我的启动中的ConfigureServices方法文件

public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllersWithViews();

        services.AddDbContext<AppDbContext>(options => options
        .UseLazyLoadingProxies()
        .UseSqlServer(Configuration.GetConnectionString("AppDbContext")));
    }

我成功地在 Index 方法中获取了我手动存储在数据库中的数据,但无法从表单中保存。

最佳答案

需要调用EntityFramework的SaveChanges()方法来保存数据:

dbContext.Categories.Add(category);
dbContext.SaveChanges();

创建、更新、删除操作后需要调用SaveChanges

关于c# - Asp.Net Core 3.1 检索数据但未将其保存到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59876569/

相关文章:

sql - 通过多个联接删除行

sql - 如何处理 Sql server CREATE TABLE 数据库名称中的空格?

sql-server - MS Access 使用 Windows 用户名连接到 SQL Server

c# - Visual Studio + Docker - 使用“编辑并继续”调试应用程序?

c# - 为什么我对 Kairos api 的 REST 请求说请求缺少必需的参数?

c# - 使用 ObservableAsPropertyHelper 激活/停用

c# - 如何在不嵌套的情况下从 AD 中获取用户所在的组

c# - ASP.Net 核心 MVC FromQuery DateTime in utc

javascript - 在 ASP.Net Core 上上传文件返回空 Request.Form.Files,仅在 React 上

c# - 我应该在 n 层应用程序中测试哪一层