¿Cómo agrego otra tabla a mi base de datos usando el código primero en MVC3 y Entity Framework?
-
26-10-2019 - |
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; }
}
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; }
}