EntityFramework 7 (EF7) Migrazioni. DbContext e Progetto di avvio sono in diversi assembly

asp.net-core-mvc entity-framework-core

Domanda

Sto cercando di utilizzare le migrazioni in EF7 con entityframework.commands. Ma il mio DbContext è in assembly diversi con il progetto Start-up (asp.net mvc è un progetto di avvio e Core.Implementation ha un DbContex).

dnx. migrazione ef aggiungi MyMigration -c MyContext

System.InvalidOperationException: non è stato trovato alcun DbContext denominato "MyContext".

Ho provato ad usare namespace per puntare ad altri assembly ma non ha funzionato neanche. È possibile a tutti? O devo solo mettere il mio contesto in assembly dove è il comando ef7?

Risposta accettata

Per problemi # 639 , # 2256 , # 2293 , # 2294 , # 2357 , # 2553 e # 2748 , abbiamo un po 'di lavoro da fare in quell'area. :-)


Risposta popolare

MODIFICARE

Dal momento che 1.0.0-rc1-final (forse prima) questo workaroud non è necessario

  • Ora non hai bisogno di App.DataAccess/Startup.cs (basta eliminarlo se hai utilizzato la soluzione qui sotto)
  • Crei / esegui migrazioni dal tuo progetto principale (in questo caso App.Web )
  • Tuttavia è necessario specificare il progetto ( -p paramater) contenente le migrazioni:

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

Se si dispone di più contesti del database, è necessario specificare quale utilizzare (parametro -c )

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

FINE MODIFICA

Ho scoperto una soluzione per questo

Supponiamo di avere 2 progetti: App.Web e App.DataAccess

Puoi aggiungere una classe di avvio molto semplice al tuo App.DataAccess :

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

La semplice classe di avvio ( App.DataAccess\Startup.cs ):

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

Modificare il project.json in App.DataAccess ( App.DataAccess/project.json ):

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

Tutto quello che devi fare è andare su App.DataAccess e usare dnx ef :

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché