C# 从MVC服务中删除项时出错

C# 从MVC服务中删除项时出错,c#,asp.net-mvc,entity-framework,model-view-controller,C#,Asp.net Mvc,Entity Framework,Model View Controller,单击“删除”后,我收到此错误: try { var crews = await GetCrewsAttached(id); var assetbookings = await _assetBooking.Get(id); var parts = await GetParts("LTD", id, false); //Checks if records exist in assetbo

单击“删除”后,我收到此错误:

 try
        {
            var crews = await GetCrewsAttached(id);
            var assetbookings = await _assetBooking.Get(id);
            var parts = await GetParts("LTD", id, false);
            //Checks if records exist in assetbookings and the employee not attached to any crew and doesnt have any parts associated to the employee
            if (assetbookings == null && (crews.Count() == 0 || crews == null) && (parts == null || parts.ToList().Count() == 0))
            {
                var employee = await _employeeRepository.Get(
                  e => e.EmployeeID == id,
                  new List<Expression<Func<gblEmployee, object>>>() {
                    (e => e.Address),
                    (e => e.EmployeeTraining.Select(t=>t.Training)),
                    (e => e.EmployeeWorkSchedule)
                });

                if (employee != null && employee.IsSupervisor != true)
                {
                    foreach (var training in employee.EmployeeTraining)
                    {
                        _employeeTrainingRepository.Delete(training);
                    }
                    await _employeeTrainingRepository.Commit();


                    if (employee.Address != null)
                    {
                        _addressRepository.Delete(employee.Address);
                        await _addressRepository.Commit();
                    }
                    _employeeRepository.Delete(employee);
                    await _employeeRepository.Commit();


                }
            }
        }
        catch (Exception ex)
        {
            throw new NexgenException(ex);
        }
试试看
{
var crews=等待GetCrewsAttached(id);
var assetbookings=wait _assetBooking.Get(id);
var零件=等待获取零件(“有限公司”,id,false);
//检查资产负债表中是否存在记录,员工是否未附属于任何工作人员,是否没有与员工相关的任何零件
如果(assetbookings==null&&(crews.Count()==0 | | crews==null)&&(parts==null | | | parts.ToList().Count()==0))
{
var employee=await_employeeRepository.Get(
e=>e.EmployeeID==id,
新名单(){
(e=>e.Address),
(e=>e.EmployeeTraining.Select(t=>t.Training)),
(e=>e.EmployeeWorkSchedule)
});
if(employee!=null&&employee.IsSupervisor!=true)
{
foreach(员工var培训。员工培训)
{
_employeeTrainingRepository.删除(培训);
}
wait_employeeTrainingRepository.Commit();
if(employee.Address!=null)
{
_addressRepository.Delete(employee.Address);
wait_addressRepository.Commit();
}
_employeeRepository.Delete(员工);
wait_employeeRepository.Commit();
}
}
}
捕获(例外情况除外)
{
抛出新的NexGeneException(ex);
}
我在
await_employeeRepository.Commit()处遇到错误

有什么解决方法吗?
错误是操作失败:无法更改关系,因为一个或多个外键属性不可为null。对关系进行更改时,相关外键属性设置为空值。如果外键不支持空值,则必须定义新的关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象

尝试调用。提交前保存更改。您还可以创建一个catch块来捕获DbEntityValidationException,以便检查缺少的值