Comment puis-je ajouter une autre table à ma base de données en utilisant le code d'abord sur le cadre MVC3 et l'entité?

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

Question

J'ai un projet MVC3 créé à l'aide du code premier paradigme et il fonctionne très bien. J'ai créé un modèle héritant de DBContext, a ajouté la chaîne de connexion, et je peux écrire sur la table et tout cela.

Je ne peux pas sembler comprendre comment ajouter une autre table à la base de données en utilisant le code d'abord, bien que. Ajout d'une autre chaîne de connexion qui pointe vers la même base de données ne fonctionne pas. Il suffit d'ajouter une autre classe, la création d'un DBContext pour elle, puis en ajoutant et sauver quelque chose au nouveau contexte ne fonctionne pas.

Comment puis-je ajouter une nouvelle table à la base de données automatiquement en utilisant le code juste? Mon apparence actuelle web.config comme ceci:

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

Mon modèle de travail ressemble à ceci:

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

Et enfin ce que je veux créer:

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; }
}
Était-ce utile?

La solution

Pourquoi ne pas créer le contexte unique pour les deux classes?

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

Autres conseils

Il suffit d'utiliser:

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

}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top