У меня 3 модели. SysPage и SysTab - это таблицы c, и у меня есть их данные. Я хочу выбрать SysPage и SysTab (не все вкладки связанных SysPage) для модуля. Поэтому я установил отношения между SysModule и SysTab с помощью SysModulePage.
public class SysModule
{
public int Id { get; set; }
public string Name { get; set; }
[JsonIgnore]
public List<SysModulePage> Pages { get; set; }
[NotMapped]
public virtual List<SysPage> PageList => this.Pages?.Select(p => p.SysPage).ToList();
}
public class SysModulePage
{
public int Id { get; set; }
public int? SysPageId { get; set; }
public SysPage SysPage { get; set; }
public int? ModuleId { get; set; }
public SysModule Module { get; set; }
[JsonIgnore]
public List<SysModulePageTab> ModuleTabs { get; set; }
[NotMapped]
public virtual List<SysTab> ModuleTabList => this.ModuleTabs?.Select(p => p.SysTab).ToList();
}
public class SysModulePageTab
{
public int Id { get; set; }
public int? SysModulePageId { get; set; }
public SysModulePage SysModulePage { get; set; }
public int? SysTabId { get; set; }
public SysTab SysTab { get; set; }
}
public class SysPage
{
public int Id { get; set; }
public string Name { get; set; }
public List<SysTab> SysTabList { get; set; }
}
public class SysTab
{
public int Id { get; set; }
public string Name { get; set; }
public int? SysPageId { get; set; }
public SysPage SysPage { get; set; }
}
Я получаю данные SysModule с EF in. Net Core Api.
var res = _rootContext.SysModules
.Include(p => p.Pages).ThenInclude(p => p.SysPage)
.Include(p => p.Pages).ThenInclude(p => p.ModuleTabs).ThenInclude(p => p.SysTab);
У меня есть SysTabList sub PageList для этого результата. Но SysTab не входит в SysPage. Как это случилось?
пример результата