Как добавить еще одну таблицу в мою базу данных, используя код сначала на MVC3 и Entity Framework?

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

Вопрос

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

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

Как добавить новую таблицу в базу данных автоматически с помощью Just Code? Мой текущий 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; }
}
Это было полезно?

Решение

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

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

Другие советы

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

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

}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top