I have 1:N relationship between Program and Student tables which EF converted into navigation property. Now I want to delete all those records in this navigation students. I
I really don't know if it's gonna work or not, but I can not help it, I'm curious.
Is program.Students.Clear()
working?
Or maybe reset it, reinitializing it?
I hope it helped you...
Edit: Please use @Ladislav Mrnka's response, as that is the correct one. I have tried to remove the answer but I cannot because it's the accepted one
Unless you have very special association called identifying relation between your program and students you should use something like this:
foreach(var student in program.Students.ToList())
{
program.Students.Remove(student); // Break realation
context.Students.DeleteObject(student); // Delete student
}
Removing student from the navigation property will only set FK in the student to null but the record will not be deleted. If FK is not nullable you will get an exception.
.Clear() method is very good. It deletes all navigation properties in database. That's simple rather than foreach loop.