Vaj*_*jda 5 c# entity-framework-4
我在Program和Student表之间有1:N关系,EF转换为导航属性.现在我要删除此导航学生中的所有记录.我开始是这样的:
foreach(Student student in program.Students)
program.Students.Remove(student);
Run Code Online (Sandbox Code Playgroud)
但我对此有点怀疑.
比我尝试过这样:
while (program.Students.Count > 0)
program.Students.Remove(program.Students.ToList()[0]);
Run Code Online (Sandbox Code Playgroud)
但这似乎也很奇怪.
是否有一些更简单的方法可以做到这一点,或者不是哪种方式最好?
Lad*_*nka 26
除非您有一个非常特殊的关联,称为识别您的计划与学生之间的关系,您应该使用以下内容:
foreach(var student in program.Students.ToList())
{
program.Students.Remove(student); // Break realation
context.Students.DeleteObject(student); // Delete student
}
Run Code Online (Sandbox Code Playgroud)
从导航属性中删除学生只会将学生中的FK设置为null,但不会删除该记录.如果FK不可为空,您将获得异常.
Adr*_*uta 12
我真的不知道它是否会起作用,但我无法帮助它,我很好奇.是program.Students.Clear()
工作?或者重置它,重新初始化它?我希望它能帮到你......
编辑:请使用@Ladislav Mrnka的回复,因为这是正确的.我试图删除答案,但我不能,因为它是被接受的
归档时间: |
|
查看次数: |
11893 次 |
最近记录: |