我们首先使用EF代码并拥有具有以下结构的模型。需要将物品送到一定深度。例如,将所有作业类型设置为深度为2将获得具有空父项及其子项的所有JobTypes。
namespace My.Models
{
public class JobType
{
public long Id { get; set; }
[Required]
public string Text { get; set; }
public long? ParentJobTypeId { get; set; }
public virtual JobType ParentJobType { get; set; }
public virtual Collection<JobType> JobTypes { get; set; }
}
}
答案 0 :(得分:1)
您可以生成包含字符串并使用Include
var query = ctx.JobType.Where(x => x.ParentJobTypeId == null);
if (count > 0)
{
var include = string.Join(".", Enumerable.Range(1, count).Select(x => "JobTypes"));
query = query.Include(include);
}