使用ASP.NET核心RC2创建新的Web应用程序时,它在Startup.cs文件中包含以下代码 -
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
我的问题是 - 注入此DbContext对象的激活模式是什么?它是短暂的还是范围的还是别的?
谢谢。
答案 0 :(得分:2)
AddDbContext<TContext>
扩展方法在EntityFrameworkServiceCollectionExtensions.cs的EntityFrameworkCore文件中定义,包含以下内容:
serviceCollection.TryAddSingleton(p => DbContextOptionsFactory<TContext>(p, optionsAction));
serviceCollection.AddSingleton<DbContextOptions>(p => p.GetRequiredService<DbContextOptions<TContext>>());
serviceCollection.TryAdd(new ServiceDescriptor(typeof(TContext), typeof(TContext), contextLifetime));
默认情况下,contextLifetime为ServiceLifetime.Scoped
,但可以更改。
请记住,通常,您始终可以在github上找到并分析ASP.NET核心源