2012-07-09 18 views
42

Estoy tratando de usar las migraciones de datos de Entity Framework, como se describe en this post.Cómo implementar IDbContextFactory para su uso con las migraciones de datos de Entity Framework

Sin embargo, cuando trato de ejecutar el paso Enable-Migrations, recibo el siguiente error en la consola de Administrador de paquetes:

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

tanto, he creado una clase de fábrica que implementa IDbContextFactory en el proyecto que contiene mi clase DbContext , pero las migraciones de datos no parecen reconocerlo.

¿Hay algo que debería hacer explícitamente para indicar a las migraciones de datos que utilicen esta clase de fábrica?

Respuesta

58

También toco este problema cuando escribí mi contexto para tomar un nombre de cadena de conexión (y luego usé ninject para proporcionarlo).

El proceso que haya pasado por parece correcta, aquí es un fragmento de mi implementación de la clase si es de alguna ayuda:

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

Eso debería ser todo lo que necesita.

+0

Gracias por su respuesta, funciona. No me puedo imaginar lo que hice mal la primera vez, ya que recuerdo haber implementado exactamente el mismo patrón yo mismo. En cualquier caso, problema resuelto. Gracias. –

+0

Perfecto, me alegro de que haya ayudado :) – dougajmcdonald

+2

¿Dónde pusiste esta clase? –

Cuestiones relacionadas