我收到以下异常:
我浏览了很多帖子here,here和here。但没有帖子表明正确解决问题。我想知道如何解决这种情况。
我的Models
和Contexts
如下:
public class Context : DbContext
{
public Context() : base("DefaultConnection")
{
}
public DbSet<Student> Students { get; set; }
public DbSet<Course> Courses { get; set; }
public DbSet<Staff> Staffs { get; set; }
}
public class Student
{
public int StudentId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
[Required]
public virtual Course Course { get; set; }
[Required]
public virtual Staff Staff { get; set; }
}
public class Staff
{
public int StaffId { get; set; }
public string Name { get; set; }
public string Contact { get; set; }
}
public class Course
{
public int CourseId { get; set; }
public string CourseName { get; set; }
[Required]
public virtual Staff Staff { get; set; }
}
我收到了这个例外:
context.Students.Add(student);
以下代码:
public void AddStudent()
{
Student student = new Student();
student.FirstName = "Bruce";
student.LastName = "Wayne";
student.Course = new Course();
student.Course.CourseName = "CSE";
student.Course.Staff = new Staff();
student.Course.Staff.Name = "Albert";
student.Course.Staff.Contact = "1234567890";
context.Students.Add(student);
context.Courses.Add(student.Course);
context.SaveChanges();
Console.WriteLine("Student , Course, Staff Added");
}
答案 0 :(得分:0)
我曾经问过这个问题。这应该可以帮到你。
EF Code First giving problems in foreign keys
参考阅读
在文章中寻找的主要部分是“什么是多重级联路径?”
要实际解决问题,您需要确定要启用级联删除的路径。对于例如如果工作人员被删除,该课程是否会被删除或是否仍然存在?
答案 1 :(得分:0)
Disabling cascading deletes应解决您的问题。如果要对此组实体进行级联删除,请手动执行。它不能自动完成,因为当有一个循环时,无法确定何时停止。