MVC之排球比賽計分程序 ——(六)使用框架,創建控制器,生成數據庫
在上篇博客我們寫到,此軟件的數據庫連接我們使用的是EF框架,code first模式下,通過模型類,在創建controller的時候直接生成數據庫,完成數據庫的連接,與操作。
在使用EF框架之前,我們需要寫好模型類。然後在創建controller。
此軟件目前需要兩個模型類,在之前的博客中,我們已經設計,和完成了模型類,這時候我們只需把代碼拿過來就可以使用了。這裏包括三個類文件: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; }
}
當完成兩個模型類的時候。我們需要對軟件進行一下生成,右鍵單擊項目,然後選擇生成,不生成後續操作可能會出錯。
在完成模型類後,這時候我們就可以通過創建controller 來進行數據庫的 連接了。右鍵單擊controller 文件夾,點擊添加,添加控制器,控制器名字改寫為:TeamController,最終生成的是:
public class TeamController : Controller
{
private CountScoreDBContext db = new CountScoreDBContext();
//
// GET: /Team/
public ActionResult Index()
{
return View(db.Team.ToList());
}
//
// GET: /Team/Details/5
public ActionResult Details(int id = 0)
{
Team team = db.Team.Find(id);
if (team == null)
{
return HttpNotFound();
}
return View(team);
}
//
// GET: /Team/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Team/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Team team)
{
if (ModelState.IsValid)
{
db.Team.Add(team);
db.SaveChanges();
return RedirectToAction("Create","Score");
}
return View(team);
}
//
// GET: /Team/Edit/5
public ActionResult Edit(int id = 0)
{
Team team = db.Team.Find(id);
if (team == null)
{
return HttpNotFound();
}
return View(team);
}
//
// POST: /Team/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Team team)
{
if (ModelState.IsValid)
{
db.Entry(team).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(team);
}
//
// GET: /Team/Delete/5
public ActionResult Delete(int id = 0)
{
Team team = db.Team.Find(id);
if (team == null)
{
return HttpNotFound();
}
return View(team);
}
//
// POST: /Team/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Team team = db.Team.Find(id);
db.Team.Remove(team);
db.SaveChanges();
return RedirectToAction("Index");
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
action方法對應的試圖也已經建立完畢。
我們可以清楚的看到系統為我們生成的文件。然後我們可以對這些文件做操作;
相同的,ScoreController,JuController控制器控制器也是一樣建立,因為觀眾界面不涉及到對數據的增刪改查,只有一個查詢,所以不適用這種方式,手動生成action方法和視圖。
SpectatorController具體生成:
到這裏,我們就使用EF框架,完成了通過模型類,然後創建controller,進行數據庫的連接,與訪問。在使用EF框架的情況下,數據庫的連接是非常方便和好用的。不過在某些時候,這個框架使用起來也是很麻煩的。
完成了數據庫的連接,軟件的實現也快要完成了,在下篇博客中,將要對軟件進行最後的完成,並進行對軟件的功能的使用與測試。
MVC之排球比賽計分程序 ——(六)使用框架,創建控制器,生成數據庫