/ / Cant私のデータベースをシードASP.NET MVC 3にする - asp.net、asp.net-mvc-3

私のデータベースをシードするASP.NET MVC 3を取得する - asp.net、asp.net-mvc-3

私は自分のデータベースを最初にエンティティフレームワーク/コードでシードしようとして問題を抱えています。私は.NETの初心者で、いろいろな解決策を試してみましたが、どれもうまくいきませんでした。

何がおかしいのですか?最も関連性の高いコードを投稿しています...どんな手助けも大歓迎です。

SampleData.cs

    namespace seed2.Models
{
public class SampleData : DropCreateDatabaseAlways<AirplaneDB>
{
protected override void Seed(AirplaneDB context)
{
var airplane = new List<Airplane>()
{
new Airplane { AirplaneId = 1, Make = "Great Planes"},
new Airplane { AirplaneId = 2, Make = "Eflite"}
};
base.Seed(context);
}

}
}

Web.Config

<add name="AirplaneDB"
connectionString="data source=|DataDirectory|Airplanes.sdf"
providerName="System.Data.SqlServerCe.4.0"/>

AirplaneDB.cs(コンテキスト)

public class AirplaneDB : DbContext
{
public DbSet<Airplane> Airplanes { get; set; }
}

Airplane.cs

public class Airplane
{
public int AirplaneId { get; set; }
public string Make { get; set; }
}

回答:

回答№1は1

まず、これをGlobal.asax.csのApplication_Start()メソッドに追加します。

System.Data.Entity.Database.SetInitializer(new seed2.Models.SampleData());

ブラウザの表示を実際に更新していることを確認してください。ソリューションを再構築してもデータベースはシードされません。

最後に、あなたが追加する必要があります airplane.ForEach(x => context.Airplanes.Add(x)); 削除 base.Seed(context) あなたの種メソッドで。


回答№2の場合は0

context.SaveChanges()base.Seed(context)の後にこの行を追加してみてください。