1. 程式人生 > >MVC之排球比賽計分程序 ——(六)使用框架,創建控制器,生成數據庫

MVC之排球比賽計分程序 ——(六)使用框架,創建控制器,生成數據庫

tex count 實現 分享 left prot 博客 entry base

在上篇博客我們寫到,此軟件的數據庫連接我們使用的是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之排球比賽計分程序 ——(六)使用框架,創建控制器,生成數據庫