У меня есть 3 модели домена PdModel, PdTable, PdColumn. связь между таблицами довольно проста - PdModel имеет много PdTables, а PdTable имеет много PdColumns. Что мне нужно, так это заполнить мою IndexModel, чтобы я мог заполнить свой выпадающий список, используя синтаксис бритвы - например, выбрав раскрывающийся список для моделей, затем на следующем уровне раскрытия для конкретной модели для этих таблиц моделей и снова для столбцов этих таблиц.
Здесь я нашел подсказку, но она не работает: Заполнение свойств навигации в свойствах навигации
в соответствии с этим URL мой метод индекса выглядит так:
PdFolderTree = _context.pdFolderTree.Include(x => x.pdModels)
.Include(x => x.pdModels.Select(y => y.PdTables))
.ToList();
Ошибка, которую я получаю:
InvalidOperationException: выражение свойства 'x => {из PdModel y в x.pdModels select [y] .PdTables}' недопустимо. Выражение должно представлять доступ к свойству: 't => t.MyProperty'. Для получения дополнительной информации о включении связанных данных см. http://go.microsoft.com/fwlink/?LinkID=746393.
Я использую .NET Core razor-pages / MVC.
Кто-нибудь имел дело с чем-то похожим в прошлом?
Спасибо
public class PdModel
{
[Key]
public int Id { get; set; }
public string ModelName { get; set; }
public ICollection<PdTable> PdTables { get; set; }
}
public class PdTable
{
[Key]
public int Id { get; set; }
public int ModelId { get; set; }
public string TableName { get; set; }
[ForeignKey("ModelId")]
public virtual PdModel PdModels { get; set; }
public ICollection<PdColumn> PdColumns { get; set; }
}
public class PdColumn
{
[Key]
public int Id { get; set; }
public string ColumnName { get; set; }
[ForeignKey("TableId")]
public PdTable pdTable { get; set; }
}