Windows7, VisualStudio2015, ASP .NET MVC5の組み合わせで開発しています。
「ASP .NET MVC5実践プログラミング」(しゅうわシステム)の導入編2-4-3(pp.49-60)にしたがってEntity Frameworkを練習しています。
Models\Member.cs
Models\MvcBasicContext.cs
Models\MvcBsicInitilizer.cs
Views\Begin\List.cshtml
をつくりました。
Views\Web.config
Grobal.asax.cs
Controllers\BeginControler.cs
を設定しました。
これでdebug実行したところ、
Grobal.asax.cs
Database.SetInitializer<MvcBasicContext>(new MvcBasicInitializer());
のところにbreakpointをおいていますが、実行されません。
Controllers\BeginControler.cs
での
private MvcBasicContext database = new MvcBasicContext();
public ActionResult List()
{
return View(database.Members);
}
は実行できているのですが、database.Membersには値が入っていないようです。
あと気になるのは、
Grobal.asax.cs
で、
Database.SetInitializer<MvcBasicContext>(new MvcBasicInitializer());
は呼んでいますが、
Models\MvcBsicInitilizer.cs
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
namespace WebApplication7.Models
{
public class MvcBasicInitializer : DropCreateDatabaseAlways<MvcBasicContext>
{
protected override void Seed(MvcBasicContext context)
{
var members = new List<Member> {
new Member {
Name = "山田リオ",
Email = "rio@wings.msn.to",
Birthday = DateTime.Parse("1980-06-25"),
IsMarried = false,
},
と設定したSeedというMethodがどこからも呼ばれていないように思えることです。
App_Data\MvcBasic.mdfも作成できていません。
整理すると、
Q1 Seedを実行する方法
Q2 Controllers\BeginControler.csの
private MvcBasicContext database = new MvcBasicContext();
database.Members
は空でよいのか? どのタイミングでデータを入れて初期化すればよいか?
となるかと思います。
アドバイスお願いします。
ファイルが多いのでソースは抜粋しましたが、必要でしたら全部アップします。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/02/22 00:12