2
:私はFluentValidationにEntity Frameworkのコンテキストを注入私はASP.NET Coreアプリケーションの起動時に以下のいる
services.AddDbContext<Context>(x => x.UseSqlServer(connectionString));
services.AddFluentValidation(x => x.RegisterValidatorsFromAssemblyContaining<Startup>());
バリ:
public class TestModelValidator : AbstractValidator<TestModel> {
public TestModelValidator(Context context) {
}
}
私は次のエラーを取得する:
ObjectDisposedException: Cannot access a disposed object. A common cause of this error is disposing a context that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur is you are calling Dispose() on the context, or wrapping the context in a using statement. If you are using dependency injection, you should let the dependency injection container take care of disposing context instances.
Object name: Context
私は何をしないのですか?コメントで述べたように
'AddFluentValidation'はシングルトンとして登録していますか?デフォルトの設定は(DbContextが状態を追跡することによって、メモリリークを避けるために) 'DbContext'がスコープサービスとして登録され、各要求の後に配置され得るということですので、あなたははい、流暢な検証がシングルトンとして追加 – Tseng
、シングルトンでDbContextを注入することはできません。しかし、私はまたのFuncを注入しようとしたと私は同じエラーを取得します。したほうがいい? –
はどのようにして ''のFuncを登録したのですか?ファクトリメソッドはのFuncでは動作しませんコンテキストを登録するときに正しく –
Tseng