在asp.net Core MVC中启动时执行数据库更新



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

我尝试了几种方法,如创建一个调用更新数据库的模型的操作(没有运气),我试图研究是否有办法在启动类中做到这一点,但再次没有运气。

我现在有这些方法

TfsMethods.cs(模型类)

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()是从一台服务器获取数据的方法,我想把这些放入我的DB。

BranchController.cs(控制器类)

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

这里的问题是,我不知道如何称呼它在初创公司,甚至剃刀页或Startup.cs

这在某种程度上是可能的还是有任何实现可以帮助我解决这个问题?

有几个有用的答案已经在:应用程序启动代码。网络核心

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

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

  • https://github.com/Homely/Homely.AspNetCore.Hosting.CoreApp/issues/11
  • https://github.com/dotnet/aspnetcore/issues/10137
  • https://github.com/App-vNext/Polly/issues/638