スタートアップクラスの依存関係をどのように使用するのが適切なのでしょうか?スタートアップからの依存関係を消費する
私は自分のアプリケーションを構成し、私は次のと呼ばれているconfigureメソッドでは、このコンテキストを消費する必要があるサービスで
public void ConfigureServices(IServiceCollection services)
{
services.AddEntityFramework().AddDbContext<ApplicationContext>(options =>
options.UseSqlServer(connection));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "https://localhost:4430",
RequireHttpsMetadata = false,
ApiName = "api",
JwtBearerEvents = new SyncUserBearerEvent()
{
OnTokenValidated = async tokenValidationContext =>
{
var claimsIdentity = tokenValidationContext.Ticket.Principal.Identity as ClaimsIdentity;
if (claimsIdentity != null)
{
// Get the user's ID
string userId = claimsIdentity.Claims.FirstOrDefault(c => c.Type == "sub").Value;
}
//I need to spawn a context here
}
}
}
});
}
をコンテキストを追加しました。私は新しいDbContextを作成するいくつかを読んで、それは適切ではなく、私たちのサービスから消費されるべきです。
起動方法で新しいDbコンテキストを使用する適切な方法は何ですか?
なぜ、どのように説明するか? –
興味深いことに、これが機能するかどうかを確認する必要がありますが、これは上記のOnTokenValidatedメソッドで使用されており、IDはアプリケーションの全期間にわたって開いていないことを好みます。 –
@ johnny5:AddDbContextの3番目のパラメータはServiceLifetimeです。私はあなたのコンテキストがアプリケーションの寿命のために開いていないと思うので、 "スコープ"としてデフォルト値を持っています。 –