ef core와 관련하여 게임을했는데 include 문과 관련된 문제가있었습니다. 이 코드를 위해 나는 내가 예상했던 2 개의 회사를 얻는다.Entity Framework 핵심 .Include() 문제
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}]
를 반환하면이 두 회사는 내가 어떤 내가 기대했던 인이 포함되어 사용 havnt 모든 관련 속성이 null이 볼 수 있듯이. 지금은 여기에 방법을 업데이트 할 때 :
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; }
}
EF 6 이하와 동일한 코드를 사용해 보셨습니까? –
EF 버전은 무엇입니까? – Mafii
@Mafii, EF Core - EF 7, 제목을 참조하십시오 –