无法将主键值分配给具有相同数据类型的另一个表列

时间:2017-04-08 02:31:00

标签: c# linq-to-sql asp.net-mvc-5

我无法存储" ID"学生的价值为" StudentID" StudentCourses表。它没有返回错误,数据类型也匹配。

ViewModel:StudentVM

public class StudentVM
    {
        public Student student { get; set; }
        public SelectList Courses { set; get; }
        public int SelectedCourseID { get; set; }
        public StudentCourses studentCourse { get; set; }

    }

" St.Id"给了我一个价值,但它的价值没有转移到" StudentID" StudentCourse表的字段,没有任何错误消息。

 [HttpPost]
        public ActionResult Create(FormCollection Form,StudentVM Vm) {
           // string strDDLValue = Vm.SelectedCourseID;

            Student st = new Student() {Name=Vm.student.Name };

            var stname=st.Name;

            int stid = st.Id;  //No transfer of value takes place.stid is null

            StudentCourses stc = new StudentCourses() { CourseID = Vm.SelectedCourseID, StudentID = st.Id };

            db.Students.Add(st);

            db.StudentCourses.Add(stc);

            db.SaveChanges();
            return View();
        }

Object St确实返回了输入值。请看看。

enter image description here

1 个答案:

答案 0 :(得分:1)

您不应该将ID分配给整个实体

StudentCourses stc = 

new StudentCourses() { CourseID = Vm.SelectedCourseID, Student = st };

这样,在SubmitChanges()上,LsS将知道ID并在单个事务中分配适当的关系。