插入外键asp.net mvc

时间:2018-04-08 21:21:39

标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-4

我有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; }
    }

当我插入数据库用户和学生和想法 插入null值的学生模型中的外键 这是插入的代码 我希望学生模型中的外键自动插入 在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; }
    }

1 个答案:

答案 0 :(得分:0)

您需要设置学生的import csv import sys csv.field_size_limit(sys.maxsize) file = open("team_contacts_cleaned.csv","w") with open('team_contacts.csv','rU') as csvfile: reader = csv.reader(csvfile) writer = csv.writer(file,quoting=csv.QUOTE_ALL) for row in reader: stripped = [col.replace('\n', ' ') for col in row] writer.writerow(stripped) file.close() print 'Done' 属性,以便EF知道建立关系。

Idea