У вас была игра с ef core и возникла проблема с оператором include. Для этого кода я получаю 2 компании, которых я ожидал.
public IEnumerable<Company> GetAllCompanies(HsDbContext db)
{
var c = db.Company;
return c;
}
Это возвращает
[{"id":1,"companyName":"new","admins":null,"employees":null,"courses":null},
{"id":2,"companyName":"Test Company","admins":null,"employees":null,"courses":null}]
Как вы можете видеть, есть 2 компании, и все связанные с ними свойства являются нулевыми, поскольку я havnt использовал какие-либо включения, что я и ожидал. Теперь, когда я обновляю метод до этого:
public IEnumerable<Company> GetAllCompanies(HsDbContext db)
{
var c = db.Company
.Include(t => t.Employees)
.Include(t => t.Admins)
.ToList();
return c;
}
это то, что он возвращает:
[{"id":1,"companyName":"new",
"admins":[{"id":2,"forename":"User","surname":"1","companyId":1}]
}]
Он возвращает только одну компанию и включает только администраторов. Почему в него не вошли 2 компании и их сотрудники?
public class Company
{
public int Id { get; set; }
public string CompanyName { get; set; }
public List<Admin> Admins { get; set; }
public List<Employee> Employees { get; set; }
public List<Course> Courses { get; set; }
public string GetFullName()
{
return CompanyName;
}
}
public class Employee
{
public int Id { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public int CompanyId { get; set; }
[ForeignKey("CompanyId")]
public Company company { get; set; }
public ICollection<EmployeeCourse> Employeecourses { get; set; }
}
public class Admin
{
public int Id { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public int CompanyId { get; set; }
[ForeignKey("CompanyId")]
public Company Company { get; set; }
}