2012-07-09 10 views
42

Sto tentando di utilizzare le migrazioni dei dati di Entity Framework, come descritto in this post.Come implementare IDbContextFactory per l'utilizzo con migrazioni dei dati di Entity Framework

Tuttavia, quando provo ad eseguire il passo Enable-Migrations, ricevo il seguente errore in Console Package Manager:

The target context 'MyDataContext' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory 

Così, ho creato una classe factory che implementa IDbContextFactory nel progetto che contiene la mia classe DbContext , ma la migrazione dei dati non sembra riconoscerla.

Esiste qualcosa che dovrei esplicitamente fare per istruire le migrazioni dei dati per utilizzare questa classe di fabbrica?

risposta

58

Ho anche riscontrato questo problema mentre scrivevo il mio contesto per prendere un nome di stringa di connessione (e poi ho usato ninject per fornirlo).

Il processo che hai passato sembra corretto, ecco un frammento della mia implementazione della classe se è di alcun aiuto:

public class MigrationsContextFactory : IDbContextFactory<MyContext> 
{ 
    public MyContext Create() 
    { 
     return new MyDBContext("connectionStringName"); 
    } 
} 

Questo dovrebbe essere tutto il necessario.

+0

Grazie per la risposta, funziona. Non riesco a immaginare cosa ho sbagliato la prima volta, poiché ricordo di aver implementato esattamente lo stesso schema. In ogni caso, il problema è risolto. Grazie. –

+0

Perfetto, felice che abbia aiutato :) – dougajmcdonald

+2

Dove hai messo questa lezione? –