Base solution for your next web application
Open Closed

Resolve DbContext in WebModule PreInitialize #5218


User avatar
0
hitaspdotnet created

Dear support team Hi, I want run the EF runtime migration method by using MyPluginDbContext.Database.Migrate() command in PreInitialize method of MyPluginMvcWebModule if that migrate isn't applied before. But I can't resolve required services for that. I'm trying to resolve DbContext with DbContextProvider and IocManager.Resolve<IHttpContextAccessor>().HttpContext.RequestServices.GetRequiredService<CMSDbContext>(); Can you guide me please to resolve DbContext services in modules configuration? It's can be helpful for plugins with DbMigration.

Thanks. Best regards.

Markdown is supported
Copy & paste or drag & drop images (max 30 MB per image)

5 Answer(s)
  • User Avatar
    0
    ismcagdas created
    Support Team

    @csbeginner you can't because it is registered to DI in the initialize method. So, why don't you do it in initialize or post initialize ?

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)
  • User Avatar
    0
    hitaspdotnet created

    <cite>ismcagdas: </cite> @csbeginner you can't because it is registered to DI in the initialize method. So, why don't you do it in initialize or post initialize ?

    Hi @ismcagdas Thanks for reply

    My plugin has EF module in separate class library (made by ABP template without module zero) I thought resolving DbContext in PreInitialize is possible when our current module is on top. So, which method is best for this workflow and what's the safe way for resolving the context for applying migration?

    Thanks again

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)
  • User Avatar
    0
    ismcagdas created
    Support Team

    @csbeginner it is better to do it in PostInitialize of your module because all DI registration will be done at that stage. We are doing database seed in AspNet Zero in a similar way <a class="postlink" href="https://github.com/aspnetzero/aspnet-zero-core/blob/60040b0e177bd3f3169dbd62d438d286a7601013/aspnet-core/src/MyCompanyName.AbpZeroTemplate.EntityFrameworkCore/EntityFrameworkCore/AbpZeroTemplateEntityFrameworkCoreModule.cs#L61">https://github.com/aspnetzero/aspnet-ze ... ule.cs#L61</a>.

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)
  • User Avatar
    0
    hitaspdotnet created

    Thank you for helpful replies. I got the solution

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)
  • User Avatar
    0
    ismcagdas created
    Support Team

    Great :)

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)