我有非常简单的模型,我想修改(删除)一个元素 集合,这是其中之一的财产。
public class Student
{
[Key]
[Column(Order = 1)]
public int Id { get; set; }
public string FirstName { get; set; }
public string SecondName { get; set; }
public int DepartamentID { get; set; }
}
public class Departament
{
[Key]
[Column(Order = 1)]
public int Id { get; set; }
public string Title { get; set; }
public virtual ICollection<Student> Students { get; set; }
}
private void Remove(List<int> IDsOfStudentsToRemove)
{
foreach (int id in IDsOfStudentsToRemove)
{
var Student = StudentContext.Students.Find(id);
var Departament = DepartamentsContext
.Departaments.Find(Student.DepartamentID);
// That's what I'd want to achieve:
// Remove student from Departament's Students collection
// then remove student from Students Table
Departament.Students.Remove(Student);
StudentContext.Students.Remove(Student);
}
StudentContext.SaveChanges();
DepartamentContext.SaveChanges();
}
但那是我收到的错误
System.InvalidOperationException:&#39;操作失败: 由于一个或多个关系无法改变 外键属性是不可为空的。当对a进行更改时 关系,相关的外键属性设置为空值。 如果外键不支持空值,则为新关系 必须定义外键属性必须另外分配 必须删除非空值或不相关的对象。&#39;
非常相似的主题:
提前致谢