Если у каждого PClass
есть ноль или более дочерних элементов, заполнять родительский класс каждого дочернего класса довольно бесполезно, поскольку вы уже знаете, что это PClass.
Кроме того, этот родительский элемент в дочернем классеесть по крайней мере один ребенок с PClass, в котором, конечно, есть по крайней мере один ребенок с родителем, у которого есть по крайней мере один ребенок с родителем, ... когда вы хотите остановиться?
В таких случаях мы либо склонны не предоставлять свойство Родителю, либо присваивать ему нулевое значение:
var query = MyDataContext.Parents.Select(parent => new PClass
{
Id = parent.Id,
Children = parent.Children.Select(child => new ChClass
{
Id = child.Id,
// ParentId = y.ParentId, Useless, you know it has the same value as Id
// Parent = ... useless, you know it has the same value as the parent
// that you are creating.
})
.ToList(),
});