1.在Models添加Movie类
namespace MyMovie.Models
{
public class Movie
{
public int ID { get; set; }
[Required(ErrorMessage = "必须输入标题")]
public string Title { get; set; }
[Required(ErrorMessage = "必须输入日期")]
public DateTime ReleaseDate { get; set; }
[Required(ErrorMessage = "必须指定种类")]
public string Genre { get; set; }
[Required(ErrorMessage = "必须输入票价")]
[Range(1, 100, ErrorMessage = "票价必须在1到100元之间")]
public decimal Price { get; set; }
[StringLength(5, ErrorMessage = "最多输入五个字符")]
public string Rating { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
/// <summary>
/// OnModelCreating方法可以被用来重载与定制规定我们的模型类
/// 如何与我们的数据表进行映射的映射规则。
/// 代码中使用了EF的ModelBuilder API来定义我们的Movie对象
/// 的票价(Price)字段的精度为准确到小数点后两位。
/// </summary>
/// <param name="modelBuilder"></param>
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Movie>().Property(p => p.Price).HasPrecision(18,2);
}
}
}
2.在Models中添加MovieIntializer类
namespace MyMovie.Models
{
public class MovieIntializer : DropCreateDatabaseIfModelChanges<MovieDBContext>
{
protected override void Seed(MovieDBContext context)
{
var movies = new List<Movie>
{
new Movie{Title="非诚勿扰2",ReleaseDate=DateTime.Parse("2011-1-11"),Genre="爱情",Rating="R",Price=7.00M},
new Movie{Title="赵氏孤儿",ReleaseDate=DateTime.Parse("2011-2-23"),Genre="历史",Rating="R",Price=9.00M},
};
movies.ForEach(d => context.Movies.Add(d));
}
}
}
3. 在Controllers中添加MoviesController
public class MoviesController : Controller
{
//
// GET: /Movies/
MovieDBContext db = new MovieDBContext();
public ActionResult Index()
{
var movies = from m in db.Movies
where
m.ReleaseDate > new DateTime(1984, 6, 1)
select m;
return View(movies.ToList());
}
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Movie newMovie)
{
if (ModelState.IsValid)
{
db.Movies.Add(newMovie);
db.SaveChanges();
return RedirectToAction("Index");
}
else
return View(newMovie);
}
public ActionResult Details(int id)
{
Movie movie = db.Movies.Find(id);
if (movie == null)
return RedirectToAction("Index");
return View("Details",movie);
}
public ActionResult Edit(int id)
{
Movie movie = db.Movies.Find(id);
if (movie == null)
return RedirectToAction("Index");
return View(movie);
}
[HttpPost]
public ActionResult Edit(Movie model)
{
try
{
var movie = db.Movies.Find(model.ID);
UpdateModel(movie);
db.SaveChanges();
return RedirectToAction("Details", new { id=model.ID});
}
catch (Exception)
{
ModelState.AddModelError("","修改失败");
}
return View(model);
}
public ActionResult Delete(int id)
{
Movie movie = db.Movies.Find(id);
if (movie == null)
return RedirectToAction("Index");
return View(movie);
}
[HttpPost]
public RedirectToRouteResult Delete(int id, FormCollection collection)
{
var movie = db.Movies.Find(id);
db.Movies.Remove(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
}
4.右键添加视图类
5.修改Web.config
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
<add name="MovieDBContext"
connectionString="data source=.;Integrated Security=SSPI;initial catalog=MovieDB;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
6.修改Global.asax
protected void Application_Start()
{
// 重新添加数据库
// Database.SetInitializer<MovieDBContext>(new MovieIntializer());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
源码链接:https://files.cnblogs.com/byzy/MyMovie.rar