我的数据库中用户包含订阅列表,每个订阅都有类别,每个类别都包含列表路径,每条路径都包含文章?
的列表class User {
ICollection<Subscription> Subscriptions;
}
class Subscription {
Category category;
}
class Category {
ICollection<Path> paths;
}
class Path{
ICollection<Article> Articles;
}
我的问题
答案 0 :(得分:0)
使用Select
和SelectMany
语句的组合,您可以遍历您的实体并找到所需的集合:
var allUserArticles = myUser.Subscriptions
.Select(sub => sub.Category) //take the category from each subscription
.SelectMany(cat => cat.Paths) //Take each path from each category, put them in a single list
.SelectMany(path => path.Articles) //Take each article from each path, put them in a single list
.ToList();
请注意,如果需要从数据库加载这些实体,那么EF需要实现预先加载,或者您必须确保在运行上述语句之前检索所有需要的相关实体。意外的空值可能导致输出不正确。
但是,我没有相关信息,因为问题中缺少这些信息,所以我不知道你的具体情况。