排球积分程序(三)——模型类的设计

---恢复内容开始---

模型类

根据需求的要求需要一个队伍类,一个队员类,一个主队比分类,一个客队比分类(这两个类可以合成一个,但是建立外键的时候两个外键不知道该怎么去解决,于是分开了)

队伍模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MvcVolleyball.Models
{
    public class Team
    {
        public int teamId { get; set; }//id
        public string teamName { get; set; }//队名
        public List<TeamMember> teamMembers;//队员
    }
}

队员模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace MvcVolleyball.Models
{
    public class TeamMember
    {
        [Key]
        public int memberId { get; set; }//id
        [ForeignKey("team")]
        public int teamId { get; set; } //队伍id
        public string number { get; set; }//号码
        public string name { get; set; }//姓名
        public DateTime brithDate { get; set; }//出生日期
        public string position { get; set; }//位置
        public int height { get; set; }//身高
        public int weight { get; set; }//体重
        [Required]
        public Team team { get; set; }//队伍
    }
}

主队得分模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace MvcVolleyball.Models
{
    public class HostTeamScore
    {
        [Key]
        public int id { get; set; }
        public int inningNum { get; set; }//局数
        public int teamId { get; set; }//主队id
       [ForeignKey("teamMember")]
        public int memberId { get; set; }//得分队员id       
        public int hostTeamScore { get; set; }//主队得分
        [Required]
        public TeamMember teamMember { get; set; }
       
       
    }
}

客队得分模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace MvcVolleyball.Models
{
   public class GuestTeamScore
    { 
        [Key]
        public int id { get; set; }
        public int inningNum { get; set; }//局数
        
        [ForeignKey("teamMember")]
        public int memberId { get; set; }//得分队员id         
        public int guestTeamScore { get; set; }//客队得分

       [Required]
        public TeamMember teamMember { get; set; } 
       
     
    }
}

队伍模型中有队员的集合  而每一个队员有自己的编号以及所属队伍,故teamId作为外键。

而每一个队员有自身的memberId 这就与得分模型中的menmberId作为外键关联起来,从而精确到得分的队员。

另:建立外键参考了这一系列博客

Entity Framwork CodeFirst 学习笔记一:EF 概念和初次接触CodeFirst

原文地址:https://www.cnblogs.com/colorful-Ji/p/7056630.html