I have a question about joining same entity using LINQ.
Department
entity:
public class Department
{
public int DepartmentId { get; set; }
[MaxLength(250), Column(TypeName = "varchar")]
public string Description { get; set; }
public int? ParentDepartmentId { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime UpdatedDate { get; set; }
public virtual ICollection<DepartmentUser> GetDepartmentUsers { get; set; }
public Department()
{
CreatedDate = DateTime.Now;
UpdatedDate = DateTime.Now;
}
}
There is a relationship between ParentDepartmentId
field of Department
entitiy and DepartmantId
field of same entity. I want to get Departments
with Description
field of ParentDepartment
with a LINQ query. I run the following code but it returned zero Department
s although there are 3 Department
s in database.
using (var context = new AttendanceDBContext())
{
var departments =
from d in context.Departments
join dd in context.Departments on d.ParentDepartmentId equals dd.DepartmentId
select new DepartmentDTO
{
DepartmentId = d.DepartmentId,
Description = d.Description,
ParentDepartment = dd.Description,
UserCount = d.GetDepartmentUsers.Count(),
CreatedDate = d.CreatedDate,
UpdatedDate = d.UpdatedDate
};
return departments.ToList();
}
DepartmentDTO
entity
public class DepartmentDTO
{
public int DepartmentId { get; set; }
public string Description { get; set; }
public string ParentDepartment { get; set; }
public int UserCount { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime UpdatedDate { get; set; }
}