MVC之排球比賽計分程序 ——(三)model類的設計與實現
實體類是現實實體在計算機中的表示。它貫穿於整個架構,負擔著在各層次及模塊間傳遞數據的職責。一般來說,實體類可以分為“貧血實體類”和“充血實體類”,前者僅僅保存實體的屬性,而後者還包含一些實體間的關系與邏輯。
大多情況下,實體類和數據庫中的表(這裏指實體表,不包括表示多對多對應的關系表)是一一對應的,但這並不是一個限制,在復雜的數據庫設計中,有可能出現一個實體類對應多個表,或者交叉對應的情況。在本文的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類的設計與實現