У меня есть стол для хранения отдельных страниц курсов. Таблица выглядит так:
Pages :
---------------------------------------------------
CourseId | LessonId | TopicId | Url
---------------------------------------------------
1 | 1 | 0 | lesson-1
---------------------------------------------------
1 | 1 | 1 | lesson-1-Topic-1
---------------------------------------------------
1 | 1 | 2 | lesson-1-Topic-2
---------------------------------------------------
1 | 1 | 3 | lesson-1-Topic-3
---------------------------------------------------
1 | 2 | 0 | lesson-2
---------------------------------------------------
1 | 2 | 1 | lesson-2-Topic-1
---------------------------------------------------
1 | 2 | 2 | lesson-2-Topic-2
---------------------------------------------------
CourseId, LessonId & TopicId являются целыми числами и составляют первичный ключ для таблицы. Эта модель позволяет мне быстро узнать урок, тема серийного номера отсутствует. , темы в уроке.
Я хочу, чтобы модель сущности была такой:
Public class Page
{
public int CourseId {get;set;}
public int LessonId {get;set;}
public int TopicId {get;set;}
// Need to write custom logic to fetch and set below properties
// Whenever this entity is initialized
public Page PreviousPage {get;set;}
public Page NextPage {get;set;}
public Page LessonPage {get;set;}
public ICollection<Page> ChildPages {get;set;}
}
Как я могу установить эти пользовательские свойства в модели? Мы можем запросить БД в контроллере и установить эти свойства. Разве это не подтолкнет логику приложения в контроллере?
Платформа / библиотеки : Asp.Net Core 2.0, MySQL 5.7, Pomelo.EntityFrameworkCore.Mysql