1
我使用实体框架和LINQ,我试图返回父母的阵列,而无需使用一个for循环。基本上这里是一个像我所面对的例子(我不能给出真实的例子,但这是同样的事情)。有一个人,当我找回那个人的时候,我想得到一个人的祖先阵列(只限男性)。因此,我会返回并排列[父亲,祖父,曾祖父,...]直到“父亲”属性为空,换句话说,我们不知道该人的父亲是谁。用Entity Framework做这件事最好的办法是什么?返回父母的列表与对象
下面是一个例子:
class Person()
{
public string Name { get; set; }
public Guid FatherId { get; set; }
public virtual Person Father { get; set; }
}
class PersonDto()
{
public string Name { get; set; }
public IEnumerable<PersonDto> Ancestors { get; set; }
}
我怎么会用一个循环做到这一点:
Person person = Context.People.Find(personId);
PersonDto personDto = person.ToDto();
Person father = person.Father;
while (father != null)
{
personDto.Ancestors.Add(father.ToDto());
father = father.Father;
}
如果你想给出一个你想要做的事情的代码示例,这将更清晰。也许嘲笑一个for循环,然后我们可以帮助你解决循环?我们没有足够的信息让我们继续。 – pquest
感谢您的反馈,我添加了一个例子。希望它有帮助 – GBreen12
在LINQ中,你可以做的最多的事情就是包含父属性,这样你的原始Person对象将有Parent,然后创建一个循环来创建祖先。 –