0
我遇到了一个非常奇怪的问题,对我没有任何意义。我正在尝试将一个集合(col)分配给一个属性(PropertyEmployees),但它不会实际分配。 该属性最初表示“employee.PropertyEmployees ='employee.PropertyEmployees'抛出了'System.ObjectDisposedException'类型的异常,但它仍然保持这种方式,即使在我试图在其上分配一个新的集合之后。无法为集合分配新值
col收集包含有效数据就在尝试使用它之前。
帐户和人员属性具有相同的异常,但在为他们分配新对象后它会消失。
public IList<Employee> getEmployees(int landlordId, int propertyId)
{
try
{
IList<Employee> employees = new List<Employee>();
IList<PropertyEmployee> propertyEmployees;
if (propertyId != 0)
{
propertyEmployees = propertyEmployeeService.getPropertyEmployeesByPropertyId(propertyId);
foreach (PropertyEmployee propertyEmployee in propertyEmployees)
{
employees.Add(employeeService.getEmployeeByEmployeeId(propertyEmployee.employeeId));
}
}
else
{
employees = employeeService.getEmployeesByLandlordId(landlordId);
}
foreach (Employee employee in employees)
{
Collection<PropertyEmployee> col = new Collection<PropertyEmployee>(propertyEmployeeService.getPropertyEmployeesByEmployeeId(employee.employeeId));
employee.PropertyEmployees = col;
employee.Person = personService.getPersonByPersonID(employee.personId);
employee.Account = accountService.getAccountByAccountId(employee.accountId.GetValueOrDefault());
}
return employees;
}
catch (ErrorHandler e)
{
throw e;
}
catch (Exception e)
{
throw new ErrorHandler(e.Message);
}
}
它在if中运行代码时工作正常。它在else中运行代码时不起作用,即使这两个部分都可能在员工内部产生完全相同的结果。 – user3822333