• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET MVC4入门教程(七):给电影表和模型添加新字段

ASP.NET MVC4入门教程(七):给电影表和模型添加新字段

作者:葡萄城控件技术团队 字体:[增加 减小] 来源:互联网 时间:2017-05-11

葡萄城控件技术团队通过本文主要向大家介绍了精通asp.net mvc4,精通asp.net mvc4 pdf,asp net mvc4教程,asp net mvc4,asp net mvc4高级编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在本节中,您将使用Entity Framework Code First来实现模型类上的操作。从而使得这些操作和变更,可以应用到数据库中。

默认情况下,就像您在之前的教程中所作的那样,使用 Entity Framework Code First自动创建一个数据库,Code First为数据库所添加的表,将帮助您跟踪数据库是否和从它生成的模型类是同步的。如果他们不是同步的,Entity Framework将抛出一个错误。这非常方便的在开发时就可以发现错误,否则您可能会在运行时才发现这个问题。 (由一个晦涩的错误信息,才发现这个问题。)

为对象模型的变更设置 Code First Migrations

如果您使用的是 Visual Studio 2012,从解决方案资源管理器中双击Movies.mdf,打开数据库工具。Visual Studio Express for Web将显示数据库资源管理器,Visual Studio 2012 将显示服务器资源管理器。如果您使用的是Visual Studio 2010,请使用 SQL Server对象资源管理器。

在数据库工具 (数据库资源管理器、 服务器资源管理器或 SQL Server对象资源管理器),右键单击MovieDBContext ,并选择删除以删除电影数据库。

返回到解决方案资源管理器。在Movies.mdf文件上右键单击,并选择删除以删除电影数据库。

Build应用程序,以确保没有任何编译错误。

从工具菜单上,单击库包管理器,然后点击程序包管理器控制台.

在 软件包管理器控制台 窗口中 PM> 提示符下输入"Enable-Migrations –ContextTypeName MvcMovie.Models.MovieDBContext"。

(如上所示)Enable-Migrations命令会在Migrations文件夹中创建一个Configuration.cs文件。

在Visual Studio 中打开Configuration.cs文件。把Configuration.cs文件中的Seed方法,替换为下面的代码:

protected override void Seed(MvcMovie.Models.MovieDBContext context) { 
  context.Movies.AddOrUpdate(
    i => i.Title, 
    new Movie { Title = "When Harry Met Sally", ReleaseDate = DateTime.Parse("1989-1-11"), Genre = "Romantic Comedy", Price = 7.99M }, 
    new Movie { Title = "Ghostbusters ", ReleaseDate = DateTime.Parse("1984-3-13"), Genre = "Comedy", Price = 8.99M }, 
    new Movie { Title = "Ghostbusters 2", ReleaseDate = DateTime.Parse("1986-2-23"), Genre = "Comedy", Price = 9.99M }, 
    new Movie { Title = "Rio Bravo", ReleaseDate = DateTime.Parse("1959-4-15"), Genre = "Western", Price = 3.99M }
  ); 
}
</div>

在Movie下面出现的红色波浪线上右键单击,并选择Resolve然后点击using MvcMovie.Models;

这样做之后,将添加以下的 using语句:

using MvcMovie.Models;
</div>

每次Code First Migrations 会调用Seed 方法(即,在程序包管理器控制台中调用update-database),并且此次调用会更新行:更新已经插入的行,或把不存在的行也插入。

按 CTRL-SHIFT-B 来Build工程。(如果此次Build不成功,以下的步骤将会失败。)

下一步是创建一个DbMigration类,用于初始化数据库迁移。此迁移类将创建新的数据库,这也就是为什么在之前的步骤中你要删除movie.mdf文件。

在软件包管理器控制台窗口中,输入"add-migration Initial"命令来创建初始迁移。" Initial" 的名称是任意,是用于创建迁移文件的名称。

Code First Migrations将会在Migrations文件夹中创建另一个类文件 (文件名为: {DateStamp}_Initial.cs ),此类中包含的代码将创建数据库的Schema。迁移文件名使用时间戳作为前缀,以帮助用来排序和查找。查看{DateStamp}_Initial.cs文件,它包含了为电影数据库创建电影表的说明。当您更新数据库时,{DateStamp}_Initial.cs文件将会被运行并创建 DB 的Schema。然后Seed方法将运行,用来填充 DB 的测试数据。

在软件包管理器控制台中,输入命令" update-database ",创建数据库并运行Seed方法。

如果您收到表已经存在并且无法创建的错误,可能是因为您已经删除了数据库,并且在执行update-database之前,您运行了应用程序。在这种情况下,再次删除Movies.mdf文件,然后重试update-database命令。如果您仍遇到错误,删除Migration文件夹及其内容,然后从头开始重做。(即删除Movies.mdf文件,然后再进行Enable-Migrations)

运行该应用程序,然后浏览URL /Movies Seed数据显示如下:

为影片模型添加评级属性

给现有的Movie类,添加新的Rating属性。打开Models\Movie.cs文件并添加如下Rating属性:

public string Rating { get; set; }
</div>

完整的Movie类如下:

public class Movie { 
  public int ID { get; set; } 
    
  public string Title { get; set; } 
    
  public DateTime ReleaseDate { get; set; } 
    
  public string Genre { get; set; } 
    
  public decimal Price { get; set; } 
    
  public string Rating { get; set; } 
}
</div>

Build 应用程序 Build>Build Move或CTRL-SHIFT-B.

现在,您已经更新了Model类,您还需要更新\Views\Movies\Index.cshtml和\Views\Movies\Create.cshtml视图模板,以便能在浏览器中显示新的Rating属性。

打开\Views\Movies\Index.cshtml文件,在Price列后面添加<th>Rating</th>的列头。然后添加一个<td>列来显示@item.Rating的值。下面是更新的Index.cshtml视图模板:

@model IEnumerable<MvcMovie.Models.Movie> 
@{ ViewBag.Title = "Index"; } 
<h2>Index</h2> 
<p> @Html.ActionLink("Create New", "Create") </p> 
<table>
  <tr>
    <th> @Html.DisplayNameFor(model => model.Title) </th>
    <th> @Html.DisplayNameFor(model => model.ReleaseDate) </th>
    <th> @Html.DisplayNameFor(model => model.Genre) </th>
    <th> @Html.DisplayNameFor(model => model.Price) </th>
    <th> @Html.DisplayNameFor(model => model.Rating) </th>
    <th></th>
  </tr>
  @foreach (var item in Model) { 
  <tr>
    <td> @Html.DisplayFor(modelItem => item.Title) </td>
    <td> @Html.DisplayFor(modelItem => item.ReleaseDate) </td>
    <td> @Html.DisplayFor(modelItem => item.Genre) </td>
    <td> @Html.DisplayFor(modelItem => item.Price) </td>
    <td> @Html.DisplayFor(modelItem => item.Rating) </td>
    <td> @Html.ActionLink("Edit", "Edit", new { id=item.ID }) | @Html.ActionLink("Details", "Details", new { id=item.ID }) | @Html.ActionLink("Delete", "Delete"



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP.NET MVC4 利用uploadify.js多文件上传
  • ASP.NET mvc4中的过滤器的使用
  • asp.net Mvc4 使用ajax结合分页插件实现无刷新分页
  • [Asp.Net MVC4]验证用户登录实现实例
  • asp.net mvc4 mysql制作简单分页组件(部分视图)
  • asp.net mvc4中bootstrap datetimepicker控件的使用
  • asp.net mvc4 mysql制作简单分页组件(部分视图)
  • asp.net mvc4中bootstrap datetimepicker控件的使用
  • ASP.NET MVC4入门教程(九):查询详细信息和删除记录
  • ASP.NET MVC4入门教程(八):给数据模型添加校验器

相关文章

  • 2017-05-11asp.net实现上传文件显示本地绝对路径的实例代码
  • 2017-05-11RabbitMQ .NET消息队列使用详解
  • 2017-05-11.NET中获取程序根目录的常用方法介绍
  • 2017-05-11ASP.NET Core配置教程之读取配置信息
  • 2017-05-11asp.net Gridview数据列中实现鼠标悬浮变色
  • 2017-05-11VS2012/VS2013本地发布网站问题集锦(HTTP错误代码)
  • 2017-05-11ASP.NET方法如何重载需要必备哪些条件
  • 2017-05-11Asp.net后台把脚本样式输出到head标签中节省代码冗余
  • 2017-05-11.Net 如何限制用户登录的方法
  • 2017-05-11如何建立ASP.NET站点

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 浅谈对Jquery+JSON+WebService的使用小结
    • APS.NET MVC4生成二维码简单解析
    • ASP.NET XmlDocument类详解
    • ASP.NET生成eurl.axd Http异常错误的处理方法
    • ASP.NET中实现jQuery Validation-Engine的Ajax验证实现代码
    • .NET读写Excel工具Spire.Xls使用 Excel单元格控制(3)
    • C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页
    • 在ASP.NET 2.0中操作数据之三十一:使用DataList来一行显示多条记录
    • 详解使用asp.net mvc部分视图渲染html
    • repeater隔行换色与鼠标停留在上面达到变色效果

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有