<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-27 22:37:45
        文檔

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

        ASP.NET MVC4入門教程(七):給電影表和模型添加新字段:在本節中,您將使用Entity Framework Code First來實現模型類上的操作。從而使得這些操作和變更,可以應用到數據庫中。 默認情況下,就像您在之前的教程中所作的那樣,使用 Entity Framework Code First自動創建一個數據庫,Code First為數據庫所
        推薦度:
        導讀ASP.NET MVC4入門教程(七):給電影表和模型添加新字段:在本節中,您將使用Entity Framework Code First來實現模型類上的操作。從而使得這些操作和變更,可以應用到數據庫中。 默認情況下,就像您在之前的教程中所作的那樣,使用 Entity Framework Code First自動創建一個數據庫,Code First為數據庫所

        在本節中,您將使用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 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", 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的同步。您還學習了使用填充示例數據來創建新數據庫的例子,您可以反復嘗試。接下來,讓我們看看如何將豐富的驗證邏輯添加到模型類,并對模型類執行一些強制的業務規則驗證。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        ASP.NET MVC4入門教程(七):給電影表和模型添加新字段:在本節中,您將使用Entity Framework Code First來實現模型類上的操作。從而使得這些操作和變更,可以應用到數據庫中。 默認情況下,就像您在之前的教程中所作的那樣,使用 Entity Framework Code First自動創建一個數據庫,Code First為數據庫所
        推薦度:
        標簽: 教程 影片 電影
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 七色永久性tv网站免费看| 国产免费看插插插视频| 我要看WWW免费看插插视频| 亚洲国产一级在线观看 | 亚洲国产成人精品久久| 人人爽人人爽人人片av免费| 99久久久国产精品免费牛牛四川 | 亚洲人成网站在线在线观看| 大地资源在线资源免费观看| 国产小视频免费观看| 亚洲最大的黄色网| 无码日韩精品一区二区免费暖暖| 免费国产a国产片高清| 中日韩亚洲人成无码网站| 美丽姑娘免费观看在线观看中文版 | 一本一道dvd在线观看免费视频 | 亚洲av最新在线网址| 免费国产高清毛不卡片基地| 最近最新中文字幕完整版免费高清| 亚洲熟妇AV一区二区三区浪潮 | 亚洲JLZZJLZZ少妇| 国产在线观看片a免费观看| 亚洲无删减国产精品一区| 91免费在线视频| 国产亚洲午夜高清国产拍精品| 亚洲AV无码XXX麻豆艾秋| 成人A级毛片免费观看AV网站| 亚洲欧洲日产国码www| 久久久久久国产精品免费无码| 国产国拍亚洲精品mv在线观看 | 国产h视频在线观看网站免费| 久久精品国产亚洲av日韩| 1a级毛片免费观看| 在线观看亚洲一区二区| 免费A级毛片无码专区| 亚洲精品国产suv一区88| 亚洲狠狠婷婷综合久久久久| 97在线免费观看视频| 激情亚洲一区国产精品| 一个人免费高清在线观看| 亚洲色丰满少妇高潮18p|