【发布时间】:2021-07-16 00:34:02
【问题描述】:
所以我想知道将另一个 DbContext 附加到我的 ASP.NET 应用程序的最佳方法是什么。我正在尝试实现DbContext,我可以在我的代码中的任何地方使用,而不仅仅是在控制器中。我试图将其添加为服务但失败了。在Configure 中,我正在使用IHubContext 创建一个新类以连接到客户端,但我还需要从数据库中检索数据,所以我正在考虑编辑构造函数Baloon 并根据需要添加DbContext。我想听听你们说什么是最好的。
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
...
services.AddDbContext<DiscordContext>();
...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
StartBalloon(app.ApplicationServices.GetRequiredService<IHubContext<BalloonHub>>());
...
}
private static void StartBalloon(IHubContext<BalloonHub> context)
{
Globals.Bln = new Balloon(context); // Starting balloon
}
DiscordContext.cs
public class DiscordContext : DbContext
{
public DbSet<DbUser> Users { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySQL("---connection_string----");
}
}
气球.cs
public class Baloon
{
private IHubContext<BalloonHub> _context;
private DbContext _db;
private List<BalloonPlayer> _currentPlayerList = new();
public int? WhenToPop;
public int? CurrentLevel;
public int? BotValue;
public int? CurrentValue;
public bool Pooped;
public bool Running;
public Balloon(IHubContext<BalloonHub> context)
{
_context = context;
Task.Run(Main); // Let's imagine that there is need for data from database(DbContext)
}
}
【问题讨论】:
标签: c# entity-framework entity-framework-core