zoukankan      html  css  js  c++  java
  • 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框架的情况下,数据库的连接是非常方便和好用的。不过在某些时候,这个框架使用起来也是很麻烦的。

         完成了数据库的连接,软件的实现也快要完成了,在下篇博客中,将要对软件进行最后的完成,并进行对软件的功能的使用与测试。

  • 相关阅读:
    php记录代码执行时间
    TortoiseSVN教程级别指南
    有些 where 条件会导致索引无效
    mysql优化
    SQL优化方法
    mysql服务性能优化 my.cnf my.ini配置说明详解(16G内存)
    mysql慢查询设置
    javascript和php使用ajax通信传递JSON
    PHP导出大量数据到excel表格
    核心支付业务
  • 原文地址:https://www.cnblogs.com/150902yt/p/7072947.html
Copyright © 2011-2022 走看看