小编Zin*_*Min的帖子

如何从 ASP.NET Core 中的 DbContext 获取 IHostingEnvironment

只是为了测试,我不想从 StartUp.cs 文件进行依赖注入。如何从 EF Core DBContext 获取 IHostingEnvironment。

我采用了一个带有空模板的新 asp.net 核心项目。我创建了一个 dbcontext,如下所示。我想使用 Environment.ContentRootPath 而不是 Directory.GetCurrentDirectory()。但我不想从 Startup.cs 做任何注入。

public class MyDBContext: DbContext
{

    public IConfigurationRoot Configuration { get; set; }
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var builder = new ConfigurationBuilder()
              .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "..\\..\\.."))
              .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
        Configuration = builder.Build();
        optionsBuilder.UseSqlServer(Configuration.GetConnectionString("SQLCN"));// @"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
    }

    public DbSet<Teacher> Teachers { get; set; }
    public DbSet<Lesson> Lessons { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我在 dbcontext 构造函数中添加 IHostingEnvironment 如下,

public class MyDBContext: DbContext
{
    private readonly …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-core asp.net-core

1
推荐指数
1
解决办法
2663
查看次数