校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > ASP.NET MVC4入門教程(七):給電影表和模型添加新字段

ASP.NET MVC4入門教程(七):給電影表和模型添加新字段

熱門標簽:代理接電話機器人如何取消 地圖標注的公司有哪些 遂寧市地圖標注app 地圖標注專業團隊 濮陽外呼電銷系統怎么樣 400電話辦理哪家性價比高 地圖定位圖標標注 天心智能電銷機器人 塔城代理外呼系統

在本節中,您將使用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 }
  ); 
}

在Movie下面出現的紅色波浪線上右鍵單擊,并選擇Resolve然后點擊using MvcMovie.Models;

這樣做之后,將添加以下的 using語句:

using MvcMovie.Models;

每次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; }

完整的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; } 
}

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 IEnumerableMvcMovie.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", new { id=item.ID }) /td>
  /tr> }
/table>

下一步,打開\Views\Movies\Create.cshtml文件,并在form標簽結束處的附近添加如下代碼。您可以在創建新的電影時指定一個電影等級。

div > @Html.LabelFor(model => model.Rating) /div>
div > @Html.EditorFor(model => model.Rating) @Html.ValidationMessageFor(model => model.Rating) /div>

現在,您已經更新應用程序代碼以支持了新的Rating屬性。

現在運行該應用程序,然后瀏覽 /Movies的 URL。然而,當您這樣做時,您將看到以下之一的錯誤信息:

你現在看到此錯誤,因為在應用程序中,最新的Movie模型類和現有的數據庫Movie表的Schema不同。(數據庫表中,沒有Rating列。)

我們將使用Code First Migrations 來解決這一問題。

更新Seed方法,以便它能為新的列提供一個值。打開 Migrations\Configuration.cs 文件,并將Rating 字段添加到影片的每個對象。

new Movie
{
  Title = "When Harry Met Sally",
  ReleaseDate = DateTime.Parse("1989-1-11"),
  Genre = "Romantic Comedy",
  Rating = "G",
  Price = 7.99M
},

Build解決方案,然后打開 軟件包管理器控制臺 窗口,并輸入以下命令:

add-migration AddRatingMig

add-migration命令告訴migration framework,來檢查當前電影模型與當前的影片 DB Schema并創建必要的代碼以將數據庫遷移到新的模型。AddRatingMig 是一個任意的文件名參數,用于命名migration文件。它將有助于使得遷移步驟成為一個有意義的名字。

當命令完成后,用Visual Studio 打開類文件,新繼承自DbMIgration 類的定義,并在Up 方法中,您可以看到創建新列的代碼:

public partial class AddRatingMig : DbMigration
{
  public override void Up()
  { 
    AddColumn("dbo.Movies", "Rating", c => c.String()); 
  }
  public override void Down()
  {
    DropColumn("dbo.Movies", "Rating");
  }
}

Build解決方案,然后在 程序包管理器控制臺 窗口中輸入"update-database"命令。

下面的圖片顯示了 程序包管理器控制臺 窗口的輸出 (AddRatingMig 的前綴時間戳將有所不同)。

重新運行應用程序,然后瀏覽 /Movies 的 URL。您可以看到新的評級字段。

單擊CreateNew鏈接來添加一部新電影。注意,請您可以為電影添加評級。

單擊Create。新的電影,包括評級,將顯示在電影列表中:

此外您也應該把Rating 字段添加到編輯、 詳細信息和 SearchIndex 的視圖模板中。

您可以再次在 程序包管理器控制臺 窗口中輸入"update-database"命令,將不會有任何新的變化,因為數據庫Schema 和模型類現在是匹配的。

在本節中,您看到了如何修改模型對象并始終保持其和數據庫Schema的同步。您還學習了使用填充示例數據來創建新數據庫的例子,您可以反復嘗試。接下來,讓我們看看如何將豐富的驗證邏輯添加到模型類,并對模型類執行一些強制的業務規則驗證。

您可能感興趣的文章:
  • 基于Asp.Net MVC4 Bundle捆綁壓縮技術的介紹
  • 使用asp.net MVC4中的Bundle遇到的問題及解決辦法分享
  • ASP.NET MVC4之js css文件合并功能(3)
  • ASP.NET MVC4 HtmlHelper擴展類,實現分頁功能
  • ASP.NET MVC4入門教程(一):入門介紹
  • ASP.NET MVC4入門教程(二):添加一個控制器
  • ASP.NET MVC4入門教程(三):添加一個視圖
  • ASP.NET MVC4入門教程(四):添加一個模型
  • ASP.NET MVC4入門教程(五):從控制器訪問數據模型
  • ASP.NET MVC4入門教程(六):驗證編輯方法和編輯視圖
  • ASP.NET MVC4入門教程(八):給數據模型添加校驗器
  • ASP.NET MVC4入門教程(九):查詢詳細信息和刪除記錄

標簽:吉林 本溪 汕頭 麗江 婁底 河南 宜春 重慶

巨人網絡通訊聲明:本文標題《ASP.NET MVC4入門教程(七):給電影表和模型添加新字段》,本文關鍵詞  ASP.NET,MVC4,入門教程,七,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET MVC4入門教程(七):給電影表和模型添加新字段》相關的同類信息!
  • 本頁收集關于ASP.NET MVC4入門教程(七):給電影表和模型添加新字段的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美曰成人黄网| 天天操天天综合网| 欧美在线观看一二区| 日本亚洲一区二区| 国产精品久久久久9999吃药| 欧美日韩成人在线| 福利一区二区在线| 一区二区三区四区视频精品免费| 精品国产乱码久久久久久久 | 26uuu精品一区二区| 日本精品一级二级| 成人精品高清在线| 麻豆视频观看网址久久| 有码一区二区三区| 亚洲另类春色国产| 韩国在线一区二区| 午夜精品aaa| 一区二区在线观看av| 国产精品丝袜在线| 久久亚洲一区二区三区四区| 欧美一区二区三区视频在线| 日本丶国产丶欧美色综合| 丁香啪啪综合成人亚洲小说 | 久久综合九色综合97_久久久| 在线观看免费成人| 99久久99久久精品国产片果冻| 国产一区二区在线免费观看| 日本成人在线不卡视频| 亚洲国产综合色| 一区二区三区视频在线看| 国产精品国产三级国产a| 久久久国际精品| 欧美videos中文字幕| 欧美一区三区二区| 欧美电影一区二区三区| 精品视频999| 欧美日韩一级片网站| 在线观看国产日韩| 欧美影视一区在线| 精品视频全国免费看| 欧美私人免费视频| 欧美在线观看18| 欧美熟乱第一页| 欧美日韩在线精品一区二区三区激情 | 精品国产3级a| 精品国产精品网麻豆系列| 日韩免费观看高清完整版在线观看| 91麻豆精品国产91久久久久久 | 欧美丝袜丝nylons| 欧美日韩精品系列| 91精品国产一区二区三区蜜臀 | 久久久久亚洲蜜桃| 日本一区二区电影| 国产精品美日韩| 一区二区三区在线视频免费| 亚洲免费av高清| 亚洲成a人v欧美综合天堂| 亚洲亚洲人成综合网络| 午夜久久久影院| 美女一区二区三区在线观看| 国产专区综合网| 成人免费观看视频| 色综合天天综合在线视频| 欧美三片在线视频观看| 91.麻豆视频| 欧美变态口味重另类| 国产精品天天摸av网| 亚洲伦理在线精品| 图片区小说区区亚洲影院| 久久99国产精品久久| 国产成人精品网址| 91精品福利在线| 制服丝袜一区二区三区| 久久无码av三级| 亚洲欧美另类综合偷拍| 日韩电影在线免费看| 国产精品538一区二区在线| 91视频国产资源| 91精品国产综合久久精品app | 中文字幕永久在线不卡| 亚洲第一福利视频在线| 国产一区二区三区精品视频| 91女人视频在线观看| 91精品欧美久久久久久动漫| 国产日韩欧美麻豆| 午夜精品成人在线视频| 国产成人精品影院| 制服视频三区第一页精品| 久久九九久精品国产免费直播| 亚洲精品ww久久久久久p站| 免费成人在线播放| 91在线你懂得| 精品三级在线观看| 亚洲综合色网站| 国产激情一区二区三区| 欧美精品aⅴ在线视频| 国产婷婷色一区二区三区四区| 亚洲亚洲人成综合网络| 岛国一区二区三区| 欧美一级黄色片| 亚洲精品国产a| 国产成人精品一区二| 日韩一区二区免费在线电影| 综合自拍亚洲综合图不卡区| 九色综合国产一区二区三区| 欧美性感一类影片在线播放| 国产精品乱人伦一区二区| 九九精品视频在线看| 欧美亚一区二区| 成人欧美一区二区三区白人| 国产曰批免费观看久久久| 欧美日韩成人一区| 亚洲综合色成人| 成人av网站在线| 久久夜色精品一区| 九九精品视频在线看| 日韩一区二区视频| 亚洲夂夂婷婷色拍ww47| 99精品国产99久久久久久白柏| 精品国产免费久久| 久久er精品视频| 制服丝袜成人动漫| 首页国产丝袜综合| 欧洲日韩一区二区三区| 亚洲视频综合在线| 99久久久无码国产精品| 欧美激情综合五月色丁香| 久久精品国产一区二区三区免费看 | 狠狠色丁香九九婷婷综合五月| 欧美日韩一卡二卡| 亚洲国产精品精华液网站| 色网站国产精品| 亚洲精品日韩一| 99vv1com这只有精品| 国产精品国产三级国产普通话蜜臀| 国产激情一区二区三区桃花岛亚洲| 欧美精品一区二区三区蜜桃视频| 精品在线观看免费| 久久人人爽爽爽人久久久| 精品一区二区免费| 久久久国产精品麻豆| 国产高清在线精品| 欧美韩日一区二区三区| 成人美女视频在线看| 国产精品卡一卡二卡三| 91视频免费播放| 亚洲线精品一区二区三区 | 国产精品久久久久久久久快鸭| 成熟亚洲日本毛茸茸凸凹| 中文字幕在线不卡一区二区三区| 91在线视频在线| 亚洲国产日韩精品| 91精品国产综合久久久蜜臀粉嫩| 免费观看日韩av| 国产日韩欧美一区二区三区综合| 成人三级伦理片| 亚洲精品国产a| 欧美日韩综合在线免费观看| 蜜桃av噜噜一区| 久久久.com| 在线区一区二视频| 日韩精品欧美精品| 亚洲精品一区二区在线观看| 国产成人av影院| 一区二区三区.www| 日韩一区二区三区三四区视频在线观看| 久久精品国产精品亚洲精品| 国产日产欧美一区二区视频| 91影院在线观看| 日韩成人免费看| 国产日韩欧美一区二区三区乱码 | 国产免费久久精品| 色综合av在线| 轻轻草成人在线| 欧美国产精品一区| 欧日韩精品视频| 精品一区二区三区不卡| 亚洲欧洲制服丝袜| 日韩欧美国产wwwww| 成人精品鲁一区一区二区| 亚洲bdsm女犯bdsm网站| 久久久久久久久久久久电影| 91福利社在线观看| 黑人巨大精品欧美一区| 一区二区三区资源| 日韩精品一区二区三区中文不卡| www.成人在线| 六月婷婷色综合| 亚洲人成在线观看一区二区| 日韩片之四级片| 99精品视频在线观看| 看国产成人h片视频| 一区二区三区国产精华| 精品sm在线观看| 欧美视频中文一区二区三区在线观看| 精品一区二区国语对白| 亚洲午夜一区二区三区| 国产欧美视频一区二区三区| 欧美一区二区视频在线观看2020| 9i看片成人免费高清|