У меня есть несколько отношений родитель> потомок> внук в моей схеме БД. Как правило, У меня есть родитель, и мне нужна информация о внуках. Например, у меня есть пользователь, у которого есть коллекция социальных сетей, в которых есть коллекции друзей. Я ловлю себя на том, что пишу этот код снова и снова.
var friends = new List<Friend>();
foreach (var socialNetwork in user.UserSocialNetworks)
{
foreach (var friend in socialNetwork.Friends)
{
friends.Add(friend);
}
}
Есть ли более элегантный способ сделать это с помощью linq?
Я бы действительно хотел иметь возможность использовать "user.Friends", но я бы нужно поместить внешний ключ для пользователя в таблицу друзей, и это плохо пахнет. Вот как это будет выглядеть:
User {Id,..}
SocialNetwork {Id, UserId, ...}
Friend {Id, SocialNetworkId, UserId, ... }
Мысли?