1. 程式人生 > >MVC之排球比賽計分程序 ——(三)model類的設計與實現

MVC之排球比賽計分程序 ——(三)model類的設計與實現

比賽 用戶 count class 包括 result 控制 類的設計 可能

實體類是現實實體在計算機中的表示。它貫穿於整個架構,負擔著在各層次及模塊間傳遞數據的職責。一般來說,實體類可以分為“貧血實體類”和“充血實體類”,前者僅僅保存實體的屬性,而後者還包含一些實體間的關系與邏輯。

大多情況下,實體類和數據庫中的表(這裏指實體表,不包括表示多對多對應的關系表)是一一對應的,但這並不是一個限制,在復雜的數據庫設計中,有可能出現一個實體類對應多個表,或者交叉對應的情況。在本文的Demo中,實體類和表是一一對應的,並且實體類中的屬性和表中的字段也是對應的。

在看實體類的代碼前,先看一下系統的工程結構。

技術分享

工程結構圖

如上圖所示,在初始階段,整個系統包括6個工程,它們的職責是這樣的:

View——視圖,呈現數據

Model——存放實體類
Controller——控制器,處理用戶請求
這只是一個初期架構,主要是將整個系統搭一個框架,在後續開發中,將會有其他工程被陸陸續續添加進來。

我們的實體類將放在Model中,這裏包括三個類文件:Team.cs, Ju.cs,Score.cs,分別是隊伍類、分數類和局次類。具體代碼如下:
public class Team

{

[Key]

public int TId { get; set; }

[Display(Name = "隊伍名稱")]

public string TName { get; set; }

[Display(Name = "結果")]

public string TResult { get; set; }

public int TParentId { get; set; }

}

public class Ju

{

[Key]

public int JId { get; set; }

[Display(Name = "局次")]

public string JUCi { get; set; }

[Display(Name = "比分")]

public string JScore { get; set; }

public int TJId { get; set; }

}

public class Score

{

[Key]

public int SId { get; set; }

[Display(Name = "得分")]

public int AScore { get; set; }

[Display(Name = "得分")]

public int BScore { get; set; }

[Display(Name = "備註")]

public string Note { get; set; }

public int SJId { get; set; }

}

public class CountScoreDBContext : DbContext

{

public DbSet<Team> Team { get; set; }

public DbSet<Ju> Ju { get; set; }

public DbSet<Score> Score { get; set; }

}

大家可以看出,實體類的代碼很簡單,僅僅是負責實體的表示和數據的傳遞,不包含任何邏輯性內容。

MVC之排球比賽計分程序 ——(三)model類的設計與實現