在 ASP .Net Core MVC 中启动时执行数据库更新

Executing DB Update on Startup in ASP .Net Core MVC

我正在开发一个应从一台服务器获取数据并将数据放入我的数据库的应用程序。我目前正在努力更新初创公司的数据库。

我尝试了几种方法,比如创建一个调用更新数据库的模型的操作(没有运气),我尝试研究是否有在 Startup class 中执行此操作的方法,但又一次运气不好。

我暂时有这些方法

TfsMethods.cs(型号 class)

    public TfsMethods(ApplicationDbContext db)
    {
        _db = db;
    }

    public void UpdateDbBranches()
    {
        var branches = GetAllBranches();
        var dbBranches = _db.Branches;
        foreach (var branch in branches)
        {
            if (dbBranches.Where(x => x.BranchName == branch.BranchName) == null)
            {
                _db.Add(branch);
            }
        }
    }

其中 _dbApplicationDbContext 并且 GetAllBranches() 是一种从一台服务器获取数据的方法,我想将这些数据放入我的数据库中。

BranchController.cs(控制器class)

public IActionResult UpdateDbBranches()
    {
        TfsMethods tfs = new TfsMethods( _db );
        try
        {
            tfs.UpdateDbBranches();
            return Ok();
        }
        catch( Exception e )
        {
            return Problem( e.ToString() );
        }
    }

这里的问题是我不知道在初创公司怎么称呼它,即使在 razor 页面或 Startup.cs

这是否可能,或者是否有任何实施可以帮助我解决这个问题?

在以下位置已经提供了几个有用的答案:

但是,您应该首先考虑是否真的要在启动时或按计划执行此操作。参见 Quartz.net 例如:https://www.infoworld.com/article/3529418/how-to-schedule-jobs-using-quartznet-in-aspnet-core.html

如果您正在尝试进行所谓的数据库播种,这些链接(以及那些讨论中的链接)可能对您有用: