だから私はMVC3とEF4を学んでいます。コードファーストの方法を試してみましたが、私には難しすぎました.クラスを問題なく作成できますが、外部キーと相互の関係を処理するときに難しい部分があります.
しかし、私は最初にモデルを使用しました。このようにして、視覚的に設計し、関係がどこにあるかを確認できます。
モデルが作成されると、SQL Express データベースに対して実行する SQL が作成されます。やった、やった。
今、テーブルにデータが必要です。もちろん、サーバー エクスプローラーを使用してそれらを追加することもできますが、作業を進めながらモデルに変更を加える可能性が高いです。そして、データベースを更新し続けます。そのため、手動でデータを入力し続けることはできません。DropCreateDatabaseIfModelChanges
最初にコードを使用する場合は、メソッドを派生させてオーバーライドできることを知っていますseed
。
ただし、モデルファーストアプローチでこれを行うにはどうすればよいですか? 次のコードがあります。
public class DatabaseInitializer : IDatabaseInitializer<BettingContext> {
public void InitializeDatabase(BettingContext context) {
var teams = new List<Team> {
new Team { Name="Toronto Maple Leafs", League="NHL"},
new Team { Name="Boston Bruins", League="NHL"},
new Team { Name="Vancouver Canucks", League="NHL"},
new Team { Name="Nashville Predators", League="NHL"},
new Team { Name="Montreal Canadiens", League="NHL"},
};
}
}
もちろん、私のグローバルファイルでは:
protected void Application_Start()
{
Database.SetInitializer<BettingContext>(new DatabaseInitializer());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
んで、どうする?メソッドを実行するように指示するにはどうすればよいですか? 私は何を間違っていますか?