Используете ли вы EntityFramework?затем вы можете использовать функции более высокого уровня, предоставляемые DbContext, для достижения того, чего вы пытаетесь достичь, например:
using (var context = new TopicContext())
{
var topicsDO = context.Topics
.Include(t=> t.Childrens)
.Select(a => new
{
Id = a.BlogId,
Title= a.Url,
ChildrenIds = a.Children.Select(x => x.Id).ToArray()
})
.ToList();
}
, если вы решили использовать sql, вы можете использовать присоединяющуюся таблицу Children для достижения того, что вы делаете.
var result = from x in db.topics
Join y in db.childrens On x.Id equals y.topicId Into childrenGroup
select new TopicsDO{
Id = x.Id,
Title = x.Title,
ChildrenGrp = childrenGroup
}