码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET MVC 4.0 学习4-Code First

时间:2014-08-27 14:22:37      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   strong   文件   ar   

之前我們需要用到的數據,通過添加Entity實體數據模型把數據庫中需要的Database拉到項目中如下圖,

而就是Code First就是相對於這種處理數據的方法而言的

bubuko.com,布布扣

 Code First更加準確的解讀是開發人員只需要編寫程式(Code Only),系統會自動建立模型和數據庫

我們來新建一個專案看一下Code First的具體實現

1,新專案的Model中加入類別MessageBoard存儲留言信息

bubuko.com,布布扣

bubuko.com,布布扣

MessageBoard.cs中添加字段屬性:

bubuko.com,布布扣
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace MvcApplication3.Models
{
    public class MessageBoard
    {
        [Key]
        public int MsgID { get; set; }

        [Required]
        [DisplayName("姓名:")]
        public string Title { get; set; }

        [Required]
        [DisplayName("內容")]
        public string Content { get; set; }
    }
}
View Code

2,Ctrl+Shift+B重建方案後,添加MessageController

bubuko.com,布布扣

範本選擇讀寫功能,模型類別選擇剛建立的Model中的MessageBoard

bubuko.com,布布扣

確認以後,我們看到Models和Views中自動生成了對應的文件,MessageController.cs和View中自動添加了相應增刪改:

bubuko.com,布布扣

Ctrl+F5運行程式,輸入Message如:http://localhost:64570/Message  我們看到了Message的首頁,並且可以添加留言

增刪查改的功能是我們剛才在添加控制器的時候選擇了“具有讀取/寫入...”功能系統自動實現的:

bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

我們剛才並沒有建立數據庫,新增的留言存放在哪裡了?

項目中點擊查看所有文件,我們發現App_Data下面產生了.mdf文件,.mdf文件以及Models下的MvcApplication3Context.cs也是在我們添加MessageController這一步選擇“資料內容類別”的時候產生的:

bubuko.com,布布扣  →→→→ bubuko.com,布布扣

 雙擊.mdf我們看到了生成的Table和Models下MessageBoard.cs中的屬性是一致的:

bubuko.com,布布扣

 

這就是Code First ,我們只需要去編寫Models中的模型,添加Controller時候系統自動幫我們生成了和模型一致的數據庫文件

 

接下來我們再看一下Models中的模型:

Code First,Model資料模型中的class對應生成了數據庫中的Table: MessageBoard.cs 對應 MessageBoards表

Model中的Class除了對屬性進行定義外,還能定義Table的名稱,Table中的主鍵以及Table間的一對多 多對多關係:

Model中添加兩個模型類,BookModel.cs和AuthorModel.cs,類中借住System.Collenctons命名空間下的Icollection實現了表與表之間的對應關係:

bubuko.com,布布扣
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;


namespace MvcApplication3.Models
{
    //定義表名稱
    [Table("MyTable")]
    public class BookModels
    {
        //定義主鍵Key
        [Key]
        public int id { get; set; }

        public string BookName { get; set; }

        public DateTime PublishTime { get; set; }

        //Book和作者的對應關係: N*1  
        public AuthorModels AuthorModels { get; set; }
    }
}
View Code
bubuko.com,布布扣
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace MvcApplication3.Models
{
    public class AuthorModels
    {
        //定義表名稱
        [Table("BookAuthor")]
        public class Author
        {
            [Key]
            public int id { get; set; }

            public string Name { get; set; }

            //作者和數的對應關係:一個作者對應多本數 1*多  
            public ICollection<BookModels> BookModels { get; set; }
        }
    }
}
View Code

 

ASP.NET MVC 4.0 学习4-Code First

标签:style   blog   http   color   os   io   strong   文件   ar   

原文地址:http://www.cnblogs.com/hishanghai/p/3938720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!