How am I confused about how the EF migration handles scenarios where my treasures are generic ( IRAPSignatory & lt; & Gt; ) and my selected dependency injector tool is injected in runtime, you know that the database has been updated / synchronized by migration using three elements:
- Database model (object context and dbst & gt; c
- Migration Clause
- In the Migration Database already exists (if any)
You can see that the original element object context And its properties are if you expose an object project without a DBSAT property, then the process used by the migration is not executed properly.
I have my solution with the following projects: Core.NTT, Core. Repository Interfaces and Infrastructure Repository EF, Infraestructure.DependencyResolution, and UI.WebSite.
As you know, the repository is injected when the Works constructor is required:
Private IRPorporation & lt; Products & gt; _productrepo; Public Test (IRPoZetry & lt; Products & gt; Product Repo) {_productRepo = productrepo; }
The question is how can migration be updated in the database because there is no DBSet in my object context & lt; & Gt; Properties (Injecting those repositories into my dependency tools runtime)?
Thank you for your valuable assistance.
I think the code first migration can not update your model If you have an empty dbcontext object (I mean without dbSet properties), so there is a way to handle this scenario where you are using the repository pattern and injected dbcontext objet into each requested repository:
Design two dbcontext objects, for development time (devdbcontext) For A and other production environments (proddbcontext).
-
DehDBanktext will be designed with DBST properties, thus migration workflow will be normal during the migration time; This model will detect changes and reproduce the database etc. When you are in DEBUG mode (#if DEBUG)
-
Proddbcontext will be a derived DBnettext object without the DBST property and when you are in release mode (#IfRelage) . To update the production database, I will create a database script and set the database initilizer to be set to Null.
What do you think about this solution?
-
No comments:
Post a Comment