Come faccio ad aggiungere un altro tavolo al mio database utilizzando codice In primo luogo sulla MVC3 e Entity Framework?

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

Domanda

Ho un progetto MVC3 ho creato utilizzando il codice primo paradigma e funziona benissimo. Ho creato un modello che eredita da DbContext, ha aggiunto la stringa di connessione, e posso scrivere al tavolo e tutto il resto.

Non riesco a capire come aggiungere un'altra tabella al database utilizzando codice In primo luogo, però. L'aggiunta di un'altra stringa di connessione che punta allo stesso database non funziona. La semplice aggiunta di un'altra classe, la creazione di un DbContext per esso, e quindi aggiungendo e salvando qualcosa al nuovo contesto non funziona.

Come faccio ad aggiungere una nuova tabella al database automaticamente utilizzando solo il codice? Il mio attuale aspetto web.config come questo:

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

Il mio lavoro aspetto modello come questo:

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; }
}

E infine quello che voglio creare:

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; }
}
È stato utile?

Soluzione

Perché non vuoi creare contesto unico per entrambe le classi?

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; }
    }

Altri suggerimenti

Proprio uso:

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; }

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top