跟我學MVC系列(Repository模式、LINQ、EF、IOC架構Castle、JQuery、AJAX)(二)Models(ORM)

來源:互聯網
上載者:User

 跟我學MVC系列(Repository模式、LINQ、EF、IOC架構Castle、JQuery、AJAX)(一)資料庫建模
跟我學MVC系列(Repository模式、LINQ、EF、IOC架構Castle、JQuery、AJAX)(三)Models(ORM、Repository模式、分頁)

我們將以執行個體為主,關於MVC的具體理論請在部落格園中搜尋,到處都有。
在設計好資料庫之後,開啟VS2008,選擇建立項目“ASP.NET MVC WEB APLLICATION”,系統會自動產生一個MVC架構,我們在這個MVC架構的基礎上開始我們的項目。建立後,我們會不得不佩服微軟的貼心,她已經給我們自動產生了一個MVC架構程式,如:

看看,是不是“M”“V”“C”都有啦,而且JQUERY 和AJAX也給引入了,實在是讓人省心不少啊
運行之後,介面如下:

,不錯吧,OK,下面我們開始寫入我們自己的東東啦。
首先,我們看到"Mondels"在“Scripts”檔案夾下面,看著讓人不爽,應該與“M”“V”並列才對啊,所以我們把它移到根目錄下面,如:

因為我們要用到Repository模式,希望大家對此也要有一定的瞭解,以下是網友的話:

在《企業架構模式》中,譯者將Repository翻譯為資產庫。給出如下說明:
通過用來訪問領域對象的一個類似集合的介面,在領域與資料對應層之間進行協調。

在《領域驅動設計:軟體核心複雜性應對之道》中,譯者將Repository翻譯為倉儲,給出如下說明:
一種用來封裝儲存,讀取和尋找行為的機制,它類比了一個對象集合。

使用該模式的最大好處就是將領域模型從客戶代碼和資料對應層之間解耦出來。

”摘自http://www.cnblogs.com/carysun/archive/2009/03/20/repository.html
具體請各位百度一下吧。

現在開始建立所需的檔案夾,“Models”檔案夾是提供所有實體類的介面,比如“使用者”、“賬目”等,以及對這些實體類的所有操作功能(增刪改查),於是我們首先在“Models”檔案夾下建立三個介面,它們分別是"IUser" "IAccount" "IAccountType"作為使用者類、賬目類和賬目類型類的介面,代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PBAccount.Models
{
   public interface IAccount
    {
       Guid AccountID { get; set; }
       IUser user { get; set; }
       bool InOrOut { get; set; }
       float Amount { get; set; }
       IAccountType AccountType { get; set; }
       DateTime Time { get; set; }
       AccountStatus Status { get; set; }
       string Detail { get; set; }
    }

    /// <summary>
    /// 賬目可見度
    /// </summary>
   public enum AccountStatus
   {
      /// <summary>
      /// 私人
      /// </summary>
       personal=0,
      /// <summary>
      /// 公開
      /// </summary>
       open
   }

}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PBAccount.Models
{
  public   interface IAccountType
    {
      Guid AccountTypeID { get; set; }
      string AccountTypeName { get; set; }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PBAccount.Models
{
   public  interface IUser
    {
       Guid UserID { get; set; }
       string LoginName { get; set; }
       string Name { get; set; }
       bool Sex { get; set; }
       DateTime BirthDay { get;set;}
       string Profession { get; set; }
       int Role { get; set; }

    }
}

以上就是三個介面啦,具體內容一看明了.OK,現在還在要Models檔案夾下建二個檔案夾,它們分別是“User” "Account",這兩個檔案夾下主要是具體功能的實現。Models裡面的東東是不與資料庫直接打交道的,我們使用Repository模式來提供與資料庫直接打交道的增刪查改的操作,Models直接使用Repository提供的準系統。好了,我們先把Models放在這兒不管,下面來設定Repository模式,首先建立一個Repository檔案夾(與Models平級),如:

,要與資料庫打交道,我們就想到了EF這個ORM,關於EF,請參考:http://www.cnblogs.com/xray2005/archive/2009/05/07/1452033.html ,
開啟“伺服器總管”,建立與我們建立的資料庫的串連,如:

,然後,在“Repository”檔案夾下面添加“ADO.NET Entity Data Model”,我們命名為“AccountEDM”,
然後選擇“從資料庫產生”,把我們建立的三個表全選,系統就自動產生了一個EF,如:

這一篇就介紹到這兒,下一篇我們具體介紹Repository模式與EF結合在ASP.NET MVC中的應用。
歡迎批評指正。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.