c# - 添加另一个 DbContext 的最佳方法
问题描述
所以我想知道将另一个附加DbContext
到我的 ASP.NET 应用程序的最佳方法是什么。我正在努力实现DbContext
我可以在我的代码中的任何地方使用,而不仅仅是在控制器中。我试图将其添加为服务但失败了。在Configure
我正在创建一个新类IHubContext
以连接到客户端,但我还需要从数据库中检索数据,所以我正在考虑编辑构造函数Baloon
并DbContext
根据需要添加。我想听听你们说什么是最好的。
启动.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)
}
}
解决方案
推荐阅读
- rest - 使用带有参数和文档附件的 REST API 启动 jbpm 进程
- kubernetes - 安装 helm chart 时出错
- python - 根据 txt 文件中的条目创建具有名称的文件
- rest - 如何检查rest api中的截止日期是否大于明天
- jsp - JSTL 日期比较是否要过期
- python - 使用openCV2去除水平条纹
- nginx - 如何在同一位置添加多个 access_by_lua_file 指令 = /_sample
- mysql - 长轮询:达到最大池大小
- c# - 导入 dll 文件时缺少字段
- c# - 带有 Unity 的 Firebase 实时数据库。只想获取特定节点下最新添加的子节点。(不取旧的)