MVC3およびエンティティフレームワークで最初にコードを使用して、データベースに別のテーブルを追加するにはどうすればよいですか?

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

質問

Code First Paradigmを使用して作成した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