【发布时间】:2021-11-26 02:32:00
【问题描述】:
我有 3 个嵌套实体,TvShow、Season 和 Episodes:
public class TvShow
{
public Id { get; set; }
public List<Season> Seasons { get; set; }
}
public class Season
{
public Id { get; set; }
public int TvShowId { get; set; }
public TvShow TvShow { get; set; }
public List<Episode> Episodes { get; set; }
}
public class Episode
{
public Id { get; set; }
public int TvShowId { get; set; }
public TvShow TvShow { get; set; }
public int SeasonId { get; set; }
public Season Season { get; set; }
}
我正在尝试编写一个查询,我可以在其中提供以下输入:
public List<int> TvShowIds { get; }
public List<int> TvShowSeasonIds { get; }
public List<int> TvShowEpisodeIds { get; }
这是我卡住的地方,查询应该包括所有不同类型的 id 及其子导航。
例如对于每个TvShowId,它应该返回包含所有Seasons 和Episodes 的TvShow 实体。对于每个SeasonId,它应该包括其所有Episodes 及其父TvShow。对于每个EpisodeId,它应该包括其父Season 和TvShow,而不包括属于同一Season 的任何其他Episodes。
那么所有这些都应该作为一个合并的(联合?)嵌套的List<TvShow>() 返回,没有任何重复。
我尝试了不同的方法,但每次都卡住了。这应该不难,也许我在思考过程中遗漏了什么?
非常感谢您的帮助!
【问题讨论】:
-
E.g. For every TvShowId, it should return the TvShow entity- 那么您想要ID 列表还是TvShow实体 列表?或者您想知道如何从List<int>ID 中获取List<TvShow? -
这是三个不同的查询,而不是一个。
-
第二个选项,我想得到一个 List
,它的导航属性基于 List Ids -
@DavidBrowne-Microsoft,所以 3 个不同的查询然后使用联合?如果是这样,我将如何在不同的嵌套实体上使用联合?
-
Project TvShow 包含每个查询的相关实体,然后您可以将它们添加到单个列表中。
标签: c# entity-framework linq entity-framework-core