Как добавить еще одну таблицу в мою базу данных, используя Code First на MVC3 и Entity Framework? - PullRequest
3 голосов
/ 28 апреля 2011

У меня есть проект MVC3, который я создал с использованием парадигмы Code First, и он прекрасно работает.Я создал модель, унаследованную от DBContext, добавил строку подключения, и я могу записать в таблицу и все такое.

Кажется, я не могу понять, как добавить еще одну таблицу в базу данных с помощью Code First,хоть.Добавление другой строки подключения, которая указывает на ту же базу данных, не работает.Простое добавление другого класса, создание для него DBContext, а затем добавление и сохранение чего-либо в новом контексте не работает.

Как добавить новую таблицу в базу данных автоматически, используя только код?Мой текущий web.config выглядит следующим образом:

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

Моя рабочая модель выглядит так:

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

И, наконец, то, что я хочу создать:

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

Ответы [ 2 ]

3 голосов
/ 28 апреля 2011

Почему бы вам не создать один контекст для обоих классов?

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; }
    }
2 голосов
/ 28 апреля 2011

Просто используйте:

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

}
...