Не создается связь один ко многим
Пытаюсь сделать модели с информацией о студентах и их расписанием Добавил такие модели:
public class GroupInfo
{
public int Id { get; set; }
public long GroupId { get; set; }
public string? GroupName { get; set; }
public string? Faculty { get; set; }
public int? Course { get; set; }
}
public class GroupTable
{
public int Id { get; set; }
public virtual GroupInfo Group { get; set; }
public virtual ICollection<Lesson>? Lessons { get; set; }
public string? Hash { get; set; }
}
[Table("Lessons")]
public class Lesson
{
public int Id { get; set; }
public DateTime StartTime { get; set; }
public string Subject { get; set; }
public string Teacher { get; set; }
public bool Notificated = false; // Уведомлено о занятии
}
И контекст бд:
public class DatabaseContext : DbContext
{
public DbSet<GroupTable> Timetable { get; set; }
public DatabaseContext() : base()
{
//Database.EnsureDeleted(); // Не забыть удалить
Database.EnsureCreated();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySql(
"server=localhost;user=user;password=123456789;database=timetable;",
new MySqlServerVersion(new Version(8, 0, 26))
);
}
}
После добавления и сохранения, все данных добавляются в соответствующие таблицы в бд. Но когда после перезапуска и пытаюсь получить данные на месте Group и Lessons получаю null
Почему так происходит и как это можно исправить?
Спасибо, оказалось нужно было просто подгрузить данные при помощи Include (https://metanit.com/sharp/entityframeworkcore/3.3.php)
Ответы (1 шт):
Автор решения: User
→ Ссылка
Покажите как вы пытаетесь получить данные. Скорей всего вы их приводите к типу List<GroupTable> с помощью .ToList()?
https://metanit.com/sharp/entityframeworkcore/3.3.php - попробуйте ключевое слово Include