¿Cómo agrego otra tabla a mi base de datos usando el código primero en MVC3 y Entity Framework?

StackOverflow https://stackoverflow.com/questions/5815771

Pregunta

Tengo un proyecto MVC3 que creé usando el Código First Paradigm y funciona muy bien. Creé un modelo heredador de DBContext, agregué la cadena de conexión y puedo escribir en la tabla y todo eso.

Sin embargo, parece que no puedo descubrir cómo agregar otra tabla a la base de datos utilizando el código primero. Agregar otra cadena de conexión que apunta a la misma base de datos no funciona. Simplemente agregar otra clase, crear un DBContext para él y luego agregar y guardar algo en el nuevo contexto no funciona.

¿Cómo agrego una nueva tabla a la base de datos automáticamente usando solo código? Mi web.config actual se ve así:

<add name="PersonDBContext"
     connectionString="Data Source=|DataDirectory|PersonData.sdf"
     providerName="System.Data.SqlServerCe.4.0"/>

Mi modelo de trabajo se ve así:

public class Person
{
    public int ID { get; set; }
    public string name { get; set; }
    public string country { get; set; }
    public string gender { get; set; }
}

public class PersonDBContext : DbContext
{
    public DbSet<Person> People { get; set; }
}

Y finalmente lo que quiero crear:

public class Dog
{
    public int ID { get; set; }
    public string name { get; set; }
    public string breed { get; set; }
}

public class DogDBContext : DbContext
{
    public DbSet<Dog> Dogs { get; set; }
}
¿Fue útil?

Solución

¿Por qué no crearías un contexto único para ambas clases?

public class Person

    {
        public int ID { get; set; }
        public string name { get; set; }
        public string country { get; set; }
        public string gender { get; set; }
    }
    public class Dog
    {
        public int ID { get; set; }
        public string name { get; set; }
        public string breed { get; set; }
    }

    public class ApplicationNameDBContext : DbContext
    {
        public DbSet<Person> People { get; set; }
        public DbSet<Dog> Dogs { get; set; }
    }

Otros consejos

Solo usa:

public class Person
{
    public int ID { get; set; }
    public string name { get; set; }
    public string country { get; set; }
    public string gender { get; set; }
}

public class Dog
{
    public int ID { get; set; }
    public string name { get; set; }
    public string breed { get; set; }
}

public class PersonDBContext : DbContext
{
    public DbSet<Person> People { get; set; }
    public DbSet<Dog> Dogs { get; set; }

}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top