我没有太多关于Asp和实体框架的知识,所以我真的不知道我必须做什么。我的问题是访问主asp方法之外的数据库上下文-这是如何在programidocs(Main)中创建和使用db上下文的
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<DatabaseContext>(
options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultDataSource"))
);
var app = builder.Build();
using (var scope = app.Services.CreateScope())
{
var context = services.GetRequiredService<DatabaseContext>();
context.Database.EnsureCreated();
}
所以我的问题是我在“builder.Configuration”之外为DatabaseContext构造函数设置“选项”
但是当我需要从其他脚本访问数据库时,我该怎么做呢?DatabaseContext需要配置,但我不知道如何在构建器之外获得它。一个家伙建议我使用依赖注入,我已经看过了,但我就是不知道如何正确地做,就像我创建了一个类,在那里初始化数据库上下文,但是我仍然需要在这里做一个配置,我真的不知道怎么做。这可能是一个非常愚蠢的问题,但是我真的不能在几天内弄清楚:D
我试过在没有配置的情况下创建DbContext,但它给出了错误
1条答案
按热度按时间k10s72fa1#
我不知道你试了什么,但我想这可能是你想要的。
假设您的
DatabaseContext
类是最基本的,并且在其中定义了一个表Users
:然后将其注册到
Program.cs
中:您可以通过迁移和更新数据库来生成您的数据库(当然您也可以手动创建):
然后,您可以通过依赖注入访问其他类中的数据库,例如在控制器中:
有关依赖注入的更多细节,可以参考this document。