只是为了测试,我不想从 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)