Объект, переданный в действие POST, отличается от объекта, переданного в представление в действии GET. В вашем действии POST вы получаете Semester
экземпляр, созданный MVC с использованием только параметров Request (строка запроса, данные публикации) - это означает, что экземпляр Student давно исчез. Вам нужно будет передать идентификатор студента в действие POST и заполнить его там.
[HttpPost]
public ActionResult Create(Guid studentID, Semester semester)
{
semester.ID = Guid.NewGuid();
semester.CreatedDate = DateTime.Now;
semester.CreatedBy = "ddf";
semester.Student = db.Students.Single(s => s.ID == StudentID);
db.Semesters.AddObject(semester);
db.SaveChanges();
return RedirectToAction("Index", "Student");
}