簡體   English   中英

插入外鍵asp.net mvc

[英]insertion of foreign key asp.net mvc

我有3個型號

public class UsersModel
    {
        [Key]
        public int UserId { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "Invalid Name Minimum Length is 5", MinimumLength = 5)]
        public string Name { get; set; }

        //20150090
        public int? student_ID { get; set; }

        [Display(Name = "transcript")]
        public string transcript { get; set; }

        [Required]
        [EmailAddress]
        public string Email { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password do not match.")]
        public string ConfirmPassword { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "Invalid Name Minimum Length is 2", MinimumLength = 2)]
        public string Department { get; set; }

        [Required]
        [Display(Name = "Phone")]
        [DataType(DataType.PhoneNumber,ErrorMessage ="Invalid Phone Number")]
        [Range(999999999, 9999999999)]
        public int Phone { get; set; }

        public int type { get; set; }

    }

學生

 public class StudentsModel
    {
        [Key]
        [Display(Name ="ID")]
        public int StudentID { get; set; }

        [Required]
        public string Name { get; set; }

        [Required]//20150090
        public string student_ID { get; set; }

        [Required]
        [Display(Name = "Skills")]
        public string Skills { get; set; }

        [Required]
        [Display(Name = "Gpa")]
        [Range(1.00, 4.00, ErrorMessage = "It must be in range 0.00 to 4.00 :)")]
        public float Gpa { get; set; }

        [Required]
        [Display(Name = "Leader")]
        public string Leader { get; set; }

        [Required]
        [Display(Name = "transcript")]
        public string transcript { get; set; }

        [ForeignKey("UserId")]
        public int UserId;
        public UsersModel Users { get; set; }

        [ForeignKey("IdeaId")]
        public int? IdeaId;
        public IdeaModel Idea { get; set; }


    }

理念

public class IdeaModel
    {
        [Required]
        [Key]
        public int IdeaId { get; set; }

        [Required]
        public string IdeaName { get; set; }

        [Required]
        public string IdeaDescription { get; set; }

        [Required]
        public string tools { get; set; }

        public int? SetWith { get; set; }

        [Required]
        public int Prof1 { get; set; }

        public int Prof2 { get; set; }

        public int Prof3 { get; set; }
    }

當我向數據庫中插入用戶和學生並提示以空值插入的學生模型中的外鍵時,這是插入代碼。我希望學生模型中的外鍵自動插入,而在usernodel和idea模型中主鍵的值如何做這個?

public ActionResult RegisterLeader(regall reg)
        {
            if (ModelState.IsValid)
            {
                var user= db.Users.Add(reg.users);
                var idea = db.Idea.Add(reg.idea);
                var stu = db.Students.Add(reg.students[0]);

                db.SaveChanges();

                return View("RegisterLeaderPost");
                //return Registerfinish();

            }
}

這個模型有三個模型

 public class regall
    {
        public List<StudentsModel> students { get; set; }
        public UsersModel users { get; set; }
        public IdeaModel idea { get; set; }
    }

您需要設置學生的Idea屬性,以便EF知道建立關系。

reg.students[0].Idea = reg.idea;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM